tapimo 0.7.0 → 0.7.2
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/ApiKeys.d.ts +24 -7
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +17 -5
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +12104 -7861
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +191 -128
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts +10 -0
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +17 -4
- package/dist/Assets.js.map +1 -1
- package/dist/Scope.d.ts +19 -8
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +25 -9
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.d.ts +1 -1
- package/dist/admin/App.d.ts +601 -20
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +12 -2
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +94 -11
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +141 -32
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +1069 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -0
- package/dist/admin/apps/earn-vaults.js +409 -0
- package/dist/admin/apps/earn-vaults.js.map +1 -0
- package/dist/admin/apps/verified-tokens.d.ts +166 -166
- 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 +151 -95
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +2 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +18 -2
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +22 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +59 -39
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/Zones.d.ts +8335 -0
- package/dist/apps/Zones.d.ts.map +1 -0
- package/dist/apps/Zones.js +38 -0
- package/dist/apps/Zones.js.map +1 -0
- package/dist/apps/data/App.d.ts +14377 -10165
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +91 -19
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +1 -1
- package/dist/apps/data/FxOracle.d.ts.map +1 -1
- package/dist/apps/data/index.d.ts +0 -1
- package/dist/apps/data/index.d.ts.map +1 -1
- package/dist/apps/data/index.js +0 -1
- package/dist/apps/data/index.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +32 -32
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +130 -65
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +312 -312
- package/dist/apps/data/routes/balances.d.ts +18 -18
- package/dist/apps/data/routes/balances.js +5 -5
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/coingecko.d.ts +176 -176
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +62 -35
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/earn.d.ts +2144 -0
- package/dist/apps/data/routes/earn.d.ts.map +1 -0
- package/dist/apps/data/routes/earn.js +947 -0
- package/dist/apps/data/routes/earn.js.map +1 -0
- package/dist/apps/data/routes/exchanges.d.ts +1231 -324
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +656 -193
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +59 -8
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/funding.d.ts +4092 -387
- package/dist/apps/data/routes/funding.d.ts.map +1 -1
- package/dist/apps/data/routes/funding.js +1403 -256
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +5 -5
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +19 -2
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +265 -265
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +11 -11
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +5 -5
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +211 -22
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +36 -36
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +49 -9
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +116 -88
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +198 -91
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +55 -55
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +78 -39
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +78 -29
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +165 -67
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +10 -10
- 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.map +1 -1
- package/dist/apps/data/routes/verified-tokens.js +34 -9
- package/dist/apps/data/routes/verified-tokens.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +5 -3
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +175 -65
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +281 -0
- package/dist/apps/data/routes/zones.d.ts.map +1 -0
- package/dist/apps/data/routes/zones.js +252 -0
- package/dist/apps/data/routes/zones.js.map +1 -0
- package/dist/apps/docs/reference.js +6 -5
- package/dist/apps/docs/reference.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 +670 -670
- package/dist/apps/management/Billing.d.ts +8 -0
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +12 -0
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/Error.d.ts +12 -0
- package/dist/apps/management/Error.d.ts.map +1 -0
- package/dist/apps/management/Error.js +10 -0
- package/dist/apps/management/Error.js.map +1 -0
- package/dist/apps/management/routes/api-keys.d.ts +5 -5
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +2 -8
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +119 -119
- package/dist/apps/management/routes/faucet.d.ts +35 -35
- package/dist/apps/management/routes/invitations.d.ts +62 -62
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +4 -10
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts +30 -30
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +78 -78
- package/dist/apps/management/routes/orgs.d.ts +48 -48
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +2 -8
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +9 -9
- 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 +80 -80
- package/dist/apps/management/routes/verified-token-requests.d.ts +36 -36
- package/dist/apps/management/routes/webhooks.d.ts +50 -50
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +15 -3
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +55 -56
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/App.js +192 -27
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/Mpp.d.ts +0 -20
- package/dist/apps/mpp/Mpp.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.js +0 -24
- package/dist/apps/mpp/Mpp.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Adapter.js +66 -0
- package/dist/apps/mpp/internal/Adapter.js.map +1 -0
- package/dist/apps/mpp/internal/Error.d.ts +4 -0
- package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Error.js +41 -0
- package/dist/apps/mpp/internal/Error.js.map +1 -0
- package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
- package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Idempotency.js +28 -0
- package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
- package/dist/apps/mpp/internal/Policy.d.ts +46 -0
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Policy.js +57 -0
- package/dist/apps/mpp/internal/Policy.js.map +1 -0
- package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
- package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
- package/dist/apps/mpp/internal/ScreenManager.js +18 -0
- package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
- package/dist/apps/mpp/internal/Screening.d.ts +35 -0
- package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Screening.js +20 -0
- package/dist/apps/mpp/internal/Screening.js.map +1 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Sponsorship.js +103 -0
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
- package/dist/apps/mpp/internal/Utils.d.ts +7 -0
- package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Utils.js +24 -0
- package/dist/apps/mpp/internal/Utils.js.map +1 -0
- package/dist/apps/relay/App.js +184 -24
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +4 -0
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +16 -7
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/db/Db.d.ts +20 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +342 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +921 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +269 -1
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/earnVaults.d.ts +68 -0
- package/dist/db/tables/earnVaults.d.ts.map +1 -0
- package/dist/db/tables/earnVaults.js +72 -0
- package/dist/db/tables/earnVaults.js.map +1 -0
- package/dist/db/tables/fundingCatalog.d.ts +56 -0
- package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
- package/dist/db/tables/fundingCatalog.js +85 -0
- package/dist/db/tables/fundingCatalog.js.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts +159 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.js +206 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
- package/dist/db/tables/fundingDeposits.d.ts +115 -0
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
- package/dist/db/tables/fundingDeposits.js +100 -0
- package/dist/db/tables/fundingDeposits.js.map +1 -0
- package/dist/db/tables/fundingIdempotency.d.ts +91 -0
- package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
- package/dist/db/tables/fundingIdempotency.js +103 -0
- package/dist/db/tables/fundingIdempotency.js.map +1 -0
- package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
- package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
- package/dist/db/tables/fundingTransferEvents.js +18 -0
- package/dist/db/tables/fundingTransferEvents.js.map +1 -0
- package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
- package/dist/db/tables/fundingTransferTransactions.js +27 -0
- package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
- package/dist/db/tables/fundingTransfers.d.ts +82 -0
- package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
- package/dist/db/tables/fundingTransfers.js +89 -0
- package/dist/db/tables/fundingTransfers.js.map +1 -0
- package/dist/db/tables/organizations.d.ts +8 -0
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +35 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +8 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +16 -0
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts +13 -0
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js +16 -0
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts +4 -2
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +14 -4
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/users.d.ts +8 -0
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +16 -0
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/verifiedTokens.d.ts +14 -7
- package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
- package/dist/db/tables/verifiedTokens.js +9 -7
- package/dist/db/tables/verifiedTokens.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +24 -3
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/relay.js +108 -108
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +26 -0
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +35 -2
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +16 -10
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/Cursor.js +1 -1
- package/dist/internal/Cursor.js.map +1 -1
- package/dist/internal/EarnRates.d.ts +89 -0
- package/dist/internal/EarnRates.d.ts.map +1 -0
- package/dist/internal/EarnRates.js +266 -0
- package/dist/internal/EarnRates.js.map +1 -0
- package/dist/internal/EarnVaults.d.ts +171 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -0
- package/dist/internal/EarnVaults.js +547 -0
- package/dist/internal/EarnVaults.js.map +1 -0
- package/dist/internal/EdgeCache.d.ts +9 -2
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +36 -9
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/Id.d.ts +11 -0
- package/dist/internal/Id.d.ts.map +1 -1
- package/dist/internal/Id.js +13 -0
- package/dist/internal/Id.js.map +1 -1
- package/dist/internal/Idempotency.d.ts +83 -0
- package/dist/internal/Idempotency.d.ts.map +1 -0
- package/dist/internal/Idempotency.js +113 -0
- package/dist/internal/Idempotency.js.map +1 -0
- package/dist/internal/Log.d.ts +64 -9
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +29 -7
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +47 -1
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +1 -1
- 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/Provider.d.ts +14 -0
- package/dist/internal/Provider.d.ts.map +1 -0
- package/dist/internal/Provider.js +5 -0
- package/dist/internal/Provider.js.map +1 -0
- package/dist/internal/Schema.d.ts +8 -3
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +24 -13
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Store.d.ts +6 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +35 -0
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +43 -24
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +79 -11
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +82 -65
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +83 -12
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookDestination.d.ts.map +1 -1
- package/dist/internal/WebhookDestination.js +34 -28
- package/dist/internal/WebhookDestination.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +9 -0
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +15 -10
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/exchange/Provider.d.ts +219 -0
- package/dist/internal/exchange/Provider.d.ts.map +1 -0
- package/dist/internal/exchange/Provider.js +117 -0
- package/dist/internal/exchange/Provider.js.map +1 -0
- package/dist/internal/exchange/index.d.ts +2 -0
- package/dist/internal/exchange/index.d.ts.map +1 -0
- package/dist/internal/exchange/index.js +2 -0
- package/dist/internal/exchange/index.js.map +1 -0
- package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
- package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
- package/dist/internal/exchange/providers/uniswap.js +553 -0
- package/dist/internal/exchange/providers/uniswap.js.map +1 -0
- package/dist/internal/funding/Action.d.ts +55 -0
- package/dist/internal/funding/Action.d.ts.map +1 -0
- package/dist/internal/funding/Action.js +74 -0
- package/dist/internal/funding/Action.js.map +1 -0
- package/dist/internal/funding/Catalog.d.ts +107 -0
- package/dist/internal/funding/Catalog.d.ts.map +1 -0
- package/dist/internal/funding/Catalog.js +270 -0
- package/dist/internal/funding/Catalog.js.map +1 -0
- package/dist/internal/funding/Chain.d.ts +76 -0
- package/dist/internal/funding/Chain.d.ts.map +1 -0
- package/dist/internal/funding/Chain.js +38 -0
- package/dist/internal/funding/Chain.js.map +1 -0
- package/dist/internal/funding/Deposit.d.ts +366 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -0
- package/dist/internal/funding/Deposit.js +286 -0
- package/dist/internal/funding/Deposit.js.map +1 -0
- package/dist/internal/funding/DepositAddress.d.ts +345 -0
- package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
- package/dist/internal/funding/DepositAddress.js +189 -0
- package/dist/internal/funding/DepositAddress.js.map +1 -0
- package/dist/internal/funding/Evidence.d.ts +52 -0
- package/dist/internal/funding/Evidence.d.ts.map +1 -0
- package/dist/internal/funding/Evidence.js +314 -0
- package/dist/internal/funding/Evidence.js.map +1 -0
- package/dist/internal/funding/Provider.d.ts +1186 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -0
- package/dist/internal/funding/Provider.js +1081 -0
- package/dist/internal/funding/Provider.js.map +1 -0
- package/dist/internal/funding/Reconciliation.d.ts +113 -0
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
- package/dist/internal/funding/Reconciliation.js +676 -0
- package/dist/internal/funding/Reconciliation.js.map +1 -0
- package/dist/internal/funding/Route.d.ts +21 -0
- package/dist/internal/funding/Route.d.ts.map +1 -0
- package/dist/internal/funding/Route.js +5 -0
- package/dist/internal/funding/Route.js.map +1 -0
- package/dist/internal/funding/Subsidy.d.ts +113 -0
- package/dist/internal/funding/Subsidy.d.ts.map +1 -0
- package/dist/internal/funding/Subsidy.js +138 -0
- package/dist/internal/funding/Subsidy.js.map +1 -0
- package/dist/internal/funding/Token.d.ts +41 -0
- package/dist/internal/funding/Token.d.ts.map +1 -0
- package/dist/internal/funding/Token.js +22 -0
- package/dist/internal/funding/Token.js.map +1 -0
- package/dist/internal/funding/Transfer.d.ts +643 -0
- package/dist/internal/funding/Transfer.d.ts.map +1 -0
- package/dist/internal/funding/Transfer.js +332 -0
- package/dist/internal/funding/Transfer.js.map +1 -0
- package/dist/internal/funding/index.d.ts +13 -0
- package/dist/internal/funding/index.d.ts.map +1 -0
- package/dist/internal/funding/index.js +13 -0
- package/dist/internal/funding/index.js.map +1 -0
- package/dist/internal/funding/providers/across.d.ts +21 -0
- package/dist/internal/funding/providers/across.d.ts.map +1 -0
- package/dist/internal/funding/providers/across.js +117 -0
- package/dist/internal/funding/providers/across.js.map +1 -0
- package/dist/internal/funding/providers/relay.d.ts +46 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -0
- package/dist/internal/funding/providers/relay.js +464 -0
- package/dist/internal/funding/providers/relay.js.map +1 -0
- package/dist/internal/funding/providers/rhino.d.ts +15 -0
- package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
- package/dist/internal/funding/providers/rhino.js +116 -0
- package/dist/internal/funding/providers/rhino.js.map +1 -0
- package/dist/internal/funding/providers/squid.d.ts +19 -0
- package/dist/internal/funding/providers/squid.d.ts.map +1 -0
- package/dist/internal/funding/providers/squid.js +120 -0
- package/dist/internal/funding/providers/squid.js.map +1 -0
- package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
- package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
- package/dist/internal/funding/providers/symbiosis.js +176 -0
- package/dist/internal/funding/providers/symbiosis.js.map +1 -0
- package/dist/internal/index.d.ts +5 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +5 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/webhookDestinations/url.js +61 -57
- package/dist/internal/webhookDestinations/url.js.map +1 -1
- package/dist/providers/index.d.ts +43 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/package.json +9 -4
- package/src/ApiKeys.test.ts +11 -7
- package/src/ApiKeys.ts +37 -9
- package/src/App.test.ts +85 -10
- package/src/App.ts +224 -137
- package/src/Assets.ts +29 -4
- package/src/Client.test-d.ts +650 -30
- package/src/Scope.test.ts +19 -0
- package/src/Scope.ts +28 -11
- package/src/Webhooks.test.ts +25 -0
- package/src/Webhooks.ts +1 -1
- package/src/admin/App.test.ts +9 -2
- package/src/admin/App.ts +32 -9
- package/src/admin/apps/api-keys.test.ts +167 -23
- package/src/admin/apps/api-keys.ts +166 -28
- package/src/admin/apps/earn-vaults.test.ts +338 -0
- package/src/admin/apps/earn-vaults.ts +572 -0
- package/src/admin/apps/scopes.test.ts +16 -1
- package/src/admin/ui/plugin.ts +2 -2
- package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
- package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
- package/src/admin/ui/src/components/Page.tsx +1 -1
- package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
- package/src/admin/ui/src/lib/api-keys.ts +37 -7
- package/src/admin/ui/src/lib/client.ts +1 -1
- package/src/admin/ui/src/lib/config.ts +1 -1
- package/src/admin/ui/src/lib/early-access.ts +8 -9
- package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
- package/src/admin/ui/src/lib/format.ts +13 -0
- package/src/admin/ui/src/lib/organizations.test.ts +14 -4
- package/src/admin/ui/src/lib/organizations.ts +7 -1
- package/src/admin/ui/src/lib/response.ts +22 -0
- package/src/admin/ui/src/lib/scopes.test.ts +19 -11
- package/src/admin/ui/src/lib/scopes.ts +28 -7
- package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
- package/src/admin/ui/src/routeTree.gen.ts +70 -7
- package/src/admin/ui/src/router.tsx +2 -2
- package/src/admin/ui/src/routes/__root.tsx +9 -8
- package/src/admin/ui/src/routes/api-keys.tsx +475 -64
- package/src/admin/ui/src/routes/early-access.tsx +5 -12
- package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
- package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
- package/src/admin/ui/src/routes/organizations.tsx +4 -7
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
- package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
- package/src/admin/ui/vite.config.ts +4 -1
- package/src/admin/ui.generated.ts +189 -95
- package/src/analytics/Analytics.test.ts +69 -10
- package/src/analytics/Analytics.ts +20 -1
- package/src/analytics/tables/requestEvents.ts +79 -37
- package/src/apps/Zones.test.ts +33 -0
- package/src/apps/Zones.ts +40 -0
- package/src/apps/composition.test.ts +84 -1
- package/src/apps/data/App.test.ts +38 -9
- package/src/apps/data/App.ts +96 -33
- package/src/apps/data/FxOracle.ts +1 -1
- package/src/apps/data/index.ts +0 -1
- package/src/apps/data/routes/activities.test.ts +82 -6
- package/src/apps/data/routes/activities.ts +131 -71
- package/src/apps/data/routes/balances.test.ts +50 -37
- package/src/apps/data/routes/balances.ts +5 -5
- package/src/apps/data/routes/blocks.test.ts +2 -0
- package/src/apps/data/routes/coingecko.test.ts +22 -0
- package/src/apps/data/routes/coingecko.ts +84 -48
- package/src/apps/data/routes/earn.test.ts +1108 -0
- package/src/apps/data/routes/earn.ts +1391 -0
- package/src/apps/data/routes/exchanges.test.ts +82 -33
- package/src/apps/data/routes/exchanges.ts +842 -227
- package/src/apps/data/routes/fee-amm.test.ts +4 -6
- package/src/apps/data/routes/fee-amm.ts +69 -12
- package/src/apps/data/routes/funding.test.ts +2712 -221
- package/src/apps/data/routes/funding.ts +1604 -387
- package/src/apps/data/routes/indexer.test.ts +43 -34
- package/src/apps/data/routes/indexer.ts +19 -2
- package/src/apps/data/routes/receipts.test.ts +5 -3
- package/src/apps/data/routes/receipts.ts +13 -11
- package/src/apps/data/routes/rpc.test.ts +446 -28
- package/src/apps/data/routes/rpc.ts +243 -25
- package/src/apps/data/routes/tokenlist.test.ts +15 -0
- package/src/apps/data/routes/tokenlist.ts +88 -22
- package/src/apps/data/routes/tokens.ts +262 -86
- package/src/apps/data/routes/transactions.test.ts +2 -0
- package/src/apps/data/routes/transactions.ts +77 -42
- package/src/apps/data/routes/transfers.test.ts +166 -4
- package/src/apps/data/routes/transfers.ts +216 -78
- package/src/apps/data/routes/valuation.test.ts +62 -9
- package/src/apps/data/routes/valuation.ts +2 -2
- package/src/apps/data/routes/verified-tokens.test.ts +51 -0
- package/src/apps/data/routes/verified-tokens.ts +52 -15
- package/src/apps/data/routes/webhooks.test.ts +432 -33
- package/src/apps/data/routes/webhooks.ts +189 -79
- package/src/apps/data/routes/zones.test.ts +473 -0
- package/src/apps/data/routes/zones.ts +338 -0
- package/src/apps/docs/reference.ts +8 -6
- package/src/apps/index.ts +2 -1
- package/src/apps/management/Billing.test.ts +29 -0
- package/src/apps/management/Billing.ts +23 -0
- package/src/apps/management/Error.ts +12 -0
- package/src/apps/management/routes/api-keys.test.ts +5 -3
- package/src/apps/management/routes/api-keys.ts +2 -9
- package/src/apps/management/routes/invitations.ts +4 -11
- package/src/apps/management/routes/orgs.ts +2 -9
- package/src/apps/management/routes/scopes.test.ts +7 -2
- package/src/apps/management/routes/scopes.ts +2 -2
- package/src/apps/management/routes/webhooks.test.ts +6 -1
- package/src/apps/management/routes/webhooks.ts +15 -3
- package/src/apps/mpp/App.ts +276 -29
- package/src/apps/mpp/Mpp.test.ts +631 -26
- package/src/apps/mpp/Mpp.ts +0 -42
- package/src/apps/mpp/internal/Adapter.ts +108 -3
- package/src/apps/mpp/internal/Error.test.ts +33 -0
- package/src/apps/mpp/internal/Error.ts +44 -6
- package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
- package/src/apps/mpp/internal/Idempotency.ts +59 -5
- package/src/apps/mpp/internal/Policy.test.ts +122 -0
- package/src/apps/mpp/internal/Policy.ts +98 -0
- package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
- package/src/apps/mpp/internal/ScreenManager.ts +41 -0
- package/src/apps/mpp/internal/Screening.ts +40 -3
- package/src/apps/mpp/internal/Sponsorship.ts +144 -0
- package/src/apps/mpp/internal/Utils.ts +30 -0
- package/src/apps/relay/App.test.ts +495 -64
- package/src/apps/relay/App.ts +234 -24
- package/src/apps/relay/Sponsorships.test.ts +51 -0
- package/src/apps/relay/Sponsorships.ts +19 -7
- package/src/db/Db.ts +439 -0
- package/src/db/Schema.ts +325 -2
- package/src/db/tables/earnVaults.test.ts +185 -0
- package/src/db/tables/earnVaults.ts +151 -0
- package/src/db/tables/fundingCatalog.test.ts +108 -0
- package/src/db/tables/fundingCatalog.ts +157 -0
- package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
- package/src/db/tables/fundingDepositAddresses.ts +376 -0
- package/src/db/tables/fundingDeposits.test.ts +261 -0
- package/src/db/tables/fundingDeposits.ts +229 -0
- package/src/db/tables/fundingIdempotency.test.ts +182 -0
- package/src/db/tables/fundingIdempotency.ts +180 -0
- package/src/db/tables/fundingTransferEvents.ts +28 -0
- package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
- package/src/db/tables/fundingTransferTransactions.ts +37 -0
- package/src/db/tables/fundingTransfers.test.ts +89 -0
- package/src/db/tables/fundingTransfers.ts +153 -0
- package/src/db/tables/organizations.test.ts +88 -0
- package/src/db/tables/organizations.ts +42 -1
- package/src/db/tables/projects.ts +16 -0
- package/src/db/tables/requestUsage.ts +23 -0
- package/src/db/tables/sponsoredTransactions.test.ts +52 -2
- package/src/db/tables/sponsoredTransactions.ts +18 -6
- package/src/db/tables/users.ts +16 -0
- package/src/db/tables/verifiedTokens.ts +19 -14
- package/src/db/tables/webhookSubscriptions.ts +58 -3
- package/src/handlers/relay.test.ts +2 -0
- package/src/handlers/relay.ts +95 -99
- package/src/internal/Auth.test.ts +48 -0
- package/src/internal/Auth.ts +61 -2
- package/src/internal/Cache.ts +13 -9
- package/src/internal/Cursor.test.ts +2 -2
- package/src/internal/Cursor.ts +1 -1
- package/src/internal/EarnRates.test.ts +125 -0
- package/src/internal/EarnRates.ts +409 -0
- package/src/internal/EarnVaults.test.ts +195 -0
- package/src/internal/EarnVaults.ts +876 -0
- package/src/internal/EdgeCache.test.ts +37 -5
- package/src/internal/EdgeCache.ts +39 -7
- package/src/internal/Id.ts +14 -0
- package/src/internal/Idempotency.test.ts +109 -0
- package/src/internal/Idempotency.ts +237 -0
- package/src/internal/Log.test-d.ts +41 -8
- package/src/internal/Log.test.ts +189 -8
- package/src/internal/Log.ts +124 -17
- package/src/internal/MetricSink.test.ts +244 -4
- package/src/internal/MetricSink.ts +51 -1
- package/src/internal/OpenApi.ts +3 -0
- package/src/internal/Provider.test.ts +17 -0
- package/src/internal/Provider.ts +17 -0
- package/src/internal/Schema.test.ts +13 -0
- package/src/internal/Schema.ts +41 -24
- package/src/internal/Store.test.ts +25 -0
- package/src/internal/Store.ts +46 -0
- package/src/internal/Tidx.local.test.ts +78 -3
- package/src/internal/Tidx.test.ts +212 -18
- package/src/internal/Tidx.ts +112 -32
- package/src/internal/VerifiedTokens.test.ts +15 -0
- package/src/internal/Viem.test.ts +170 -17
- package/src/internal/Viem.ts +111 -28
- package/src/internal/WebhookDestination.ts +25 -23
- package/src/internal/Webhooks.test.ts +59 -0
- package/src/internal/Webhooks.ts +34 -10
- package/src/internal/exchange/Provider.test.ts +216 -0
- package/src/internal/exchange/Provider.ts +326 -0
- package/src/internal/exchange/index.test.ts +6 -0
- package/src/internal/exchange/index.ts +1 -0
- package/src/internal/exchange/providers/uniswap.test.ts +122 -0
- package/src/internal/exchange/providers/uniswap.ts +682 -0
- package/src/internal/funding/Action.test.ts +138 -0
- package/src/internal/funding/Action.ts +117 -0
- package/src/internal/funding/Catalog.test.ts +311 -0
- package/src/internal/funding/Catalog.ts +347 -0
- package/src/internal/funding/Chain.test.ts +79 -0
- package/src/internal/funding/Chain.ts +120 -0
- package/src/internal/funding/Deposit.test.ts +26 -0
- package/src/internal/funding/Deposit.ts +453 -0
- package/src/internal/funding/DepositAddress.test.ts +18 -0
- package/src/internal/funding/DepositAddress.ts +312 -0
- package/src/internal/funding/Evidence.test.ts +297 -0
- package/src/internal/funding/Evidence.ts +430 -0
- package/src/internal/funding/Provider.test.ts +1328 -0
- package/src/internal/funding/Provider.ts +1796 -0
- package/src/internal/funding/Reconciliation.local.test.ts +504 -0
- package/src/internal/funding/Reconciliation.test.ts +2020 -0
- package/src/internal/funding/Reconciliation.ts +930 -0
- package/src/internal/funding/Route.test.ts +66 -0
- package/src/internal/funding/Route.ts +29 -0
- package/src/internal/funding/Subsidy.local.test.ts +152 -0
- package/src/internal/funding/Subsidy.test.ts +75 -0
- package/src/internal/funding/Subsidy.ts +260 -0
- package/src/internal/funding/Token.test.ts +47 -0
- package/src/internal/funding/Token.ts +59 -0
- package/src/internal/funding/Transfer.test.ts +369 -0
- package/src/internal/funding/Transfer.ts +522 -0
- package/src/internal/funding/index.test.ts +20 -0
- package/src/internal/funding/index.ts +12 -0
- package/src/internal/funding/providers/across.ts +149 -0
- package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
- package/src/internal/funding/providers/relay.test.ts +474 -0
- package/src/internal/funding/providers/relay.ts +559 -0
- package/src/internal/funding/providers/rhino.ts +139 -0
- package/src/internal/funding/providers/squid.ts +151 -0
- package/src/internal/funding/providers/symbiosis.ts +221 -0
- package/src/internal/index.test.ts +5 -1
- package/src/internal/index.ts +5 -1
- package/src/internal/webhookDestinations/url.ts +49 -45
- package/src/providers/index.test.ts +14 -0
- package/src/providers/index.ts +54 -0
- package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
- package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
- package/dist/apps/data/FundingQuoteProviders.js +0 -775
- package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
- package/dist/internal/FundingQuotes.d.ts +0 -864
- package/dist/internal/FundingQuotes.d.ts.map +0 -1
- package/dist/internal/FundingQuotes.js +0 -672
- package/dist/internal/FundingQuotes.js.map +0 -1
- package/src/apps/data/FundingQuoteProviders.ts +0 -1043
- package/src/internal/FundingQuotes.test.ts +0 -456
- package/src/internal/FundingQuotes.ts +0 -944
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
2
|
import { ZoneRpcAuthentication } from 'ox/tempo';
|
|
3
3
|
import * as z from 'zod/mini';
|
|
4
|
+
import * as Scope from '../../../Scope.js';
|
|
4
5
|
import * as Auth from '../../../internal/Auth.js';
|
|
6
|
+
import * as Log from '../../../internal/Log.js';
|
|
5
7
|
import * as OpenApi from '../../../internal/OpenApi.js';
|
|
6
8
|
import * as Response from '../../../internal/Response.js';
|
|
7
9
|
import * as Schema from '../../../internal/Schema.js';
|
|
@@ -62,7 +64,13 @@ const zoneReadMethods = new Set([
|
|
|
62
64
|
'net_version',
|
|
63
65
|
'web3_clientVersion',
|
|
64
66
|
'web3_sha3',
|
|
67
|
+
'zone_getEncryptionKey',
|
|
68
|
+
'zone_getZoneInfo',
|
|
65
69
|
]);
|
|
70
|
+
// Zone write scopes broadcast caller-signed transactions only. Node-managed
|
|
71
|
+
// accounts, signing, faucet, admin, and debug methods remain inaccessible.
|
|
72
|
+
const zoneWriteMethods = new Set(['eth_sendRawTransaction', 'eth_sendRawTransactionSync']);
|
|
73
|
+
const maxRpcInspectionBytes = 64 * 1_024;
|
|
66
74
|
/** Never reached; carries typed passthrough response variants into Hono client inference. */
|
|
67
75
|
const narrowPassthrough = false;
|
|
68
76
|
/** Zod schemas owned by the raw RPC passthrough. */
|
|
@@ -105,28 +113,28 @@ export var schema;
|
|
|
105
113
|
error: z
|
|
106
114
|
.optional(schema.Error)
|
|
107
115
|
.check(z.describe('JSON-RPC error object returned when a method fails.')),
|
|
108
|
-
id: z
|
|
109
|
-
.optional(schema.Id)
|
|
110
|
-
.check(z.describe('Client-supplied JSON-RPC request id used to match responses to requests.')),
|
|
116
|
+
id: schema.Id.check(z.describe('Client-supplied JSON-RPC request id used to match responses to requests.')),
|
|
111
117
|
jsonrpc: z.literal('2.0').check(z.describe('JSON-RPC protocol version; Tempo uses `2.0`.')),
|
|
112
118
|
result: z
|
|
113
119
|
.optional(z.unknown())
|
|
114
120
|
.check(z.describe('Result returned by the upstream RPC method.')),
|
|
115
121
|
})
|
|
116
|
-
.check(z.
|
|
122
|
+
.check(z.refine((response) => (response.error === undefined) !== (response.result === undefined), {
|
|
123
|
+
error: 'A JSON-RPC response must contain exactly one of result or error.',
|
|
124
|
+
}), z.describe('One JSON-RPC response returned by Tempo.'));
|
|
117
125
|
/** JSON-RPC request or batch request payload. */
|
|
118
126
|
schema.RequestBody = z
|
|
119
127
|
.union([schema.Request, z.array(schema.Request)])
|
|
120
128
|
.check(z.describe('A single JSON-RPC request or an array of requests for batch calls.'));
|
|
121
129
|
/** JSON-RPC response or batch response payload. */
|
|
122
130
|
schema.ResponseBody = z
|
|
123
|
-
.union([schema.Response, z.array(schema.Response)])
|
|
131
|
+
.union([schema.Response, z.array(schema.Response).check(z.minLength(1))])
|
|
124
132
|
.check(z.describe('A single JSON-RPC response or an array of responses for batch calls.'));
|
|
125
133
|
})(schema || (schema = {}));
|
|
126
134
|
/** Creates the raw Tempo RPC passthrough handler. */
|
|
127
135
|
export function rpc() {
|
|
128
136
|
return new Hono().post('/rpc/:chain{(mainnet|testnet|[0-9]+)}?', Auth.policy({ apiKey: { scopes: ['data:read'] }, public: true }), OpenApi.describeRoute({
|
|
129
|
-
description: 'Sends a single or batch Ethereum JSON-RPC request directly to Tempo. Use `/rpc/testnet`, `/rpc/mainnet`, or `/rpc/:chain` to choose a chain. Zone
|
|
137
|
+
description: 'Sends a single or batch Ethereum JSON-RPC request directly to Tempo. Use `/rpc/testnet`, `/rpc/mainnet`, or `/rpc/:chain` to choose a chain. Zone read scopes permit read-only methods; Zone write scopes also permit signed transaction broadcasts. A Zone token in `X-Authorization-Token` is forwarded to the authenticated Zone RPC. This passthrough is not part of the stable API contract and is supported on a best-effort basis only. It has no compatibility, latency, availability, or data-freshness guarantees, and breaking changes may happen with limited notice.',
|
|
130
138
|
operationId: 'rpcRequest',
|
|
131
139
|
parameters: [
|
|
132
140
|
{
|
|
@@ -188,15 +196,24 @@ export function rpc() {
|
|
|
188
196
|
message: 'Missing API key',
|
|
189
197
|
status: 401,
|
|
190
198
|
});
|
|
191
|
-
if (zone && !zoneToken
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
199
|
+
if (zone && !zoneToken) {
|
|
200
|
+
const requests = Array.isArray(body) ? body : [body];
|
|
201
|
+
const allowed = requests.length > 0 &&
|
|
202
|
+
requests.every((request) => isZoneReadMethod(request) ||
|
|
203
|
+
(isZoneWriteMethod(request) && hasZoneWriteScope(c, chainId)));
|
|
204
|
+
if (!allowed)
|
|
205
|
+
return Response.error(c, {
|
|
206
|
+
code: 'api_key_forbidden',
|
|
207
|
+
message: 'Zone API keys may call read-only RPC methods. A matching Zone write scope also permits signed transaction broadcasts; pass a Zone token for other methods.',
|
|
208
|
+
status: 403,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
197
211
|
if (narrowPassthrough)
|
|
198
|
-
return c.json(Response.validated(schema.ResponseBody, { jsonrpc: '2.0' }), 200);
|
|
199
|
-
|
|
212
|
+
return c.json(Response.validated(schema.ResponseBody, { id: null, jsonrpc: '2.0', result: null }), 200);
|
|
213
|
+
const notificationOnly = inspectBody
|
|
214
|
+
? isNotificationOnly(body)
|
|
215
|
+
: await inspectNotificationOnly(c.req.raw);
|
|
216
|
+
return passthrough(c, chainId, { notificationOnly });
|
|
200
217
|
});
|
|
201
218
|
}
|
|
202
219
|
function requiresApiKey(c) {
|
|
@@ -219,9 +236,56 @@ function isPublicMethod(request) {
|
|
|
219
236
|
const method = request['method'];
|
|
220
237
|
return typeof method === 'string' && method.startsWith('eth_');
|
|
221
238
|
}
|
|
222
|
-
function
|
|
223
|
-
const
|
|
224
|
-
|
|
239
|
+
function isNotificationOnly(body) {
|
|
240
|
+
const parsed = schema.RequestBody.safeParse(body);
|
|
241
|
+
if (!parsed.success)
|
|
242
|
+
return false;
|
|
243
|
+
const requests = Array.isArray(parsed.data) ? parsed.data : [parsed.data];
|
|
244
|
+
return requests.length > 0 && requests.every((request) => request.id === undefined);
|
|
245
|
+
}
|
|
246
|
+
async function inspectNotificationOnly(request) {
|
|
247
|
+
const contentLength = Number(request.headers.get('content-length'));
|
|
248
|
+
if (Number.isFinite(contentLength) && contentLength > maxRpcInspectionBytes)
|
|
249
|
+
return false;
|
|
250
|
+
const body = request.clone().body;
|
|
251
|
+
if (!body)
|
|
252
|
+
return false;
|
|
253
|
+
const reader = body.getReader();
|
|
254
|
+
const chunks = [];
|
|
255
|
+
let size = 0;
|
|
256
|
+
let complete = false;
|
|
257
|
+
while (size <= maxRpcInspectionBytes) {
|
|
258
|
+
const read = await reader.read();
|
|
259
|
+
if (read.done) {
|
|
260
|
+
complete = true;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
chunks.push(read.value);
|
|
264
|
+
size += read.value.byteLength;
|
|
265
|
+
}
|
|
266
|
+
if (!complete || size > maxRpcInspectionBytes) {
|
|
267
|
+
void reader.cancel();
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
const bytes = new Uint8Array(size);
|
|
271
|
+
let offset = 0;
|
|
272
|
+
for (const chunk of chunks) {
|
|
273
|
+
bytes.set(chunk, offset);
|
|
274
|
+
offset += chunk.byteLength;
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
return isNotificationOnly(JSON.parse(new TextDecoder().decode(bytes)));
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function hasZoneWriteScope(c, chainId) {
|
|
284
|
+
const principal = Auth.getPrincipal(c);
|
|
285
|
+
if (principal?.type !== 'api_key')
|
|
286
|
+
return false;
|
|
287
|
+
const scopes = principal.apiKey.scopes;
|
|
288
|
+
return scopes.includes(Scope.wildcard) || scopes.includes(`zone:${chainId}:write`);
|
|
225
289
|
}
|
|
226
290
|
function isZoneReadMethod(request) {
|
|
227
291
|
if (!request || typeof request !== 'object')
|
|
@@ -229,15 +293,26 @@ function isZoneReadMethod(request) {
|
|
|
229
293
|
const method = request['method'];
|
|
230
294
|
return typeof method === 'string' && zoneReadMethods.has(method);
|
|
231
295
|
}
|
|
232
|
-
|
|
296
|
+
function isZoneWriteMethod(request) {
|
|
297
|
+
if (!request || typeof request !== 'object')
|
|
298
|
+
return false;
|
|
299
|
+
const method = request['method'];
|
|
300
|
+
return typeof method === 'string' && zoneWriteMethods.has(method);
|
|
301
|
+
}
|
|
302
|
+
async function passthrough(c, chainId, options) {
|
|
303
|
+
// Keep caller-selected values out of metric dimensions even if an upstream
|
|
304
|
+
// resolver accepts a chain the deployment did not declare.
|
|
305
|
+
const alertChainId = c.get('supportedChainIds').has(chainId) ? chainId : 0;
|
|
233
306
|
const zone = c.get('zones').get(chainId);
|
|
234
307
|
const zoneToken = getZoneToken(c);
|
|
235
|
-
const rpc =
|
|
308
|
+
const rpc = c.get('rpc');
|
|
236
309
|
const principal = Auth.getPrincipal(c);
|
|
237
310
|
const upstream_rpc = !zone && principal?.type === 'public' && typeof rpc !== 'function' ? undefined : rpc;
|
|
238
311
|
// Anonymous callers use the built-in public RPC unless a resolver chooses a
|
|
239
312
|
// different public upstream.
|
|
240
|
-
const { basicAuth, url } = Viem.
|
|
313
|
+
const { basicAuth, bearerAuth, publicZoneUrl, url: resolvedUrl, } = Viem.resolveRpc(upstream_rpc, { chainId, principal, zone });
|
|
314
|
+
const usePublicZoneUrl = Boolean(zone && zoneToken);
|
|
315
|
+
const url = usePublicZoneUrl ? publicZoneUrl : resolvedUrl;
|
|
241
316
|
// The chain id is syntactically valid but this deployment has no RPC upstream
|
|
242
317
|
// configured for it (no `rpc` config and no built-in default).
|
|
243
318
|
if (!url)
|
|
@@ -251,8 +326,11 @@ async function passthrough(c, chainId) {
|
|
|
251
326
|
for (const [name, value] of c.req.raw.headers)
|
|
252
327
|
if (!strippedHeaders.has(name.toLowerCase()))
|
|
253
328
|
headers.set(name, value);
|
|
254
|
-
|
|
329
|
+
// Public Zone endpoints authenticate with the caller's token, never internal RPC credentials.
|
|
330
|
+
if (!usePublicZoneUrl && basicAuth)
|
|
255
331
|
headers.set('authorization', `Basic ${btoa(basicAuth)}`);
|
|
332
|
+
else if (!usePublicZoneUrl && bearerAuth)
|
|
333
|
+
headers.set('authorization', `Bearer ${bearerAuth}`);
|
|
256
334
|
if (zone && zoneToken)
|
|
257
335
|
headers.set(ZoneRpcAuthentication.headerName, zoneToken);
|
|
258
336
|
// `duplex` is required when streaming a request body, but is not yet in
|
|
@@ -269,16 +347,127 @@ async function passthrough(c, chainId) {
|
|
|
269
347
|
}
|
|
270
348
|
try {
|
|
271
349
|
const response = await fetch(new Request(upstream, init));
|
|
350
|
+
let body = response.body;
|
|
351
|
+
if (!response.ok) {
|
|
352
|
+
// Malformed requests and public Zone authentication failures are caused
|
|
353
|
+
// by caller input, not by the RPC provider.
|
|
354
|
+
if (!isCallerRpcFailure(response.status, usePublicZoneUrl))
|
|
355
|
+
c.set('providerFailure', rpcProviderFailure(response, alertChainId));
|
|
356
|
+
}
|
|
357
|
+
else if (response.status === 200) {
|
|
358
|
+
const inspection = await inspectRpcResponse(response);
|
|
359
|
+
body = inspection.body;
|
|
360
|
+
if (inspection.result?.ok === false && !(inspection.result.empty && options.notificationOnly))
|
|
361
|
+
c.set('providerFailure', {
|
|
362
|
+
chainId: alertChainId,
|
|
363
|
+
failure: 'payload',
|
|
364
|
+
id: 'rpc',
|
|
365
|
+
operation: 'request',
|
|
366
|
+
});
|
|
367
|
+
else if (inspection.result?.ok) {
|
|
368
|
+
const parsed = schema.ResponseBody.safeParse(inspection.result.value);
|
|
369
|
+
if (!parsed.success)
|
|
370
|
+
c.set('providerFailure', {
|
|
371
|
+
chainId: alertChainId,
|
|
372
|
+
failure: 'payload',
|
|
373
|
+
id: 'rpc',
|
|
374
|
+
operation: 'request',
|
|
375
|
+
});
|
|
376
|
+
else {
|
|
377
|
+
const rpc = Log.rpcErrors(parsed.data);
|
|
378
|
+
if (rpc)
|
|
379
|
+
c.set('rpcResponse', rpc);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
272
383
|
// Stream the upstream response back verbatim so JSON-RPC bodies, status
|
|
273
384
|
// codes, and headers survive exactly as clients expect.
|
|
274
|
-
return c.newResponse(
|
|
385
|
+
return c.newResponse(body, response);
|
|
275
386
|
}
|
|
276
387
|
catch (cause) {
|
|
277
388
|
// Timeouts and network failures become the standard 502 envelope instead
|
|
278
389
|
// of an unhandled 500.
|
|
390
|
+
c.set('providerFailure', rpcProviderFailure(cause, alertChainId));
|
|
279
391
|
return Response.upstream(c, cause);
|
|
280
392
|
}
|
|
281
393
|
}
|
|
394
|
+
function isCallerRpcFailure(status, usePublicZoneUrl) {
|
|
395
|
+
return (status === 400 ||
|
|
396
|
+
status === 413 ||
|
|
397
|
+
status === 415 ||
|
|
398
|
+
status === 422 ||
|
|
399
|
+
(usePublicZoneUrl && (status === 401 || status === 403)));
|
|
400
|
+
}
|
|
401
|
+
async function inspectRpcResponse(response) {
|
|
402
|
+
const contentLength = Number(response.headers.get('content-length'));
|
|
403
|
+
if (Number.isFinite(contentLength) && contentLength > maxRpcInspectionBytes)
|
|
404
|
+
return { body: response.body, result: undefined };
|
|
405
|
+
if (!response.body)
|
|
406
|
+
return { body: null, result: { empty: true, ok: false } };
|
|
407
|
+
const reader = response.body.getReader();
|
|
408
|
+
const chunks = [];
|
|
409
|
+
let size = 0;
|
|
410
|
+
let complete = false;
|
|
411
|
+
while (size <= maxRpcInspectionBytes) {
|
|
412
|
+
const read = await reader.read();
|
|
413
|
+
if (read.done) {
|
|
414
|
+
complete = true;
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
chunks.push(read.value);
|
|
418
|
+
size += read.value.byteLength;
|
|
419
|
+
}
|
|
420
|
+
let index = 0;
|
|
421
|
+
const body = new ReadableStream({
|
|
422
|
+
cancel: (reason) => reader.cancel(reason),
|
|
423
|
+
async pull(controller) {
|
|
424
|
+
const chunk = chunks[index];
|
|
425
|
+
if (chunk) {
|
|
426
|
+
index += 1;
|
|
427
|
+
controller.enqueue(chunk);
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
const read = await reader.read();
|
|
431
|
+
if (read.done)
|
|
432
|
+
controller.close();
|
|
433
|
+
else
|
|
434
|
+
controller.enqueue(read.value);
|
|
435
|
+
},
|
|
436
|
+
});
|
|
437
|
+
if (!complete || size > maxRpcInspectionBytes)
|
|
438
|
+
return { body, result: undefined };
|
|
439
|
+
const bytes = new Uint8Array(size);
|
|
440
|
+
let offset = 0;
|
|
441
|
+
for (const chunk of chunks) {
|
|
442
|
+
bytes.set(chunk, offset);
|
|
443
|
+
offset += chunk.byteLength;
|
|
444
|
+
}
|
|
445
|
+
const result = (() => {
|
|
446
|
+
try {
|
|
447
|
+
return { ok: true, value: JSON.parse(new TextDecoder().decode(bytes)) };
|
|
448
|
+
}
|
|
449
|
+
catch {
|
|
450
|
+
return { empty: size === 0, ok: false };
|
|
451
|
+
}
|
|
452
|
+
})();
|
|
453
|
+
return { body, result };
|
|
454
|
+
}
|
|
455
|
+
function rpcProviderFailure(cause, chainId) {
|
|
456
|
+
const base = { chainId, id: 'rpc', operation: 'request' };
|
|
457
|
+
if (cause instanceof DOMException &&
|
|
458
|
+
(cause.name === 'AbortError' || cause.name === 'TimeoutError'))
|
|
459
|
+
return { ...base, failure: 'timeout' };
|
|
460
|
+
if (cause instanceof globalThis.Response) {
|
|
461
|
+
if (cause.status === 408)
|
|
462
|
+
return { ...base, failure: 'timeout', status: cause.status };
|
|
463
|
+
if (cause.status === 429)
|
|
464
|
+
return { ...base, failure: 'rate_limit', status: cause.status };
|
|
465
|
+
return { ...base, failure: 'http', status: cause.status };
|
|
466
|
+
}
|
|
467
|
+
if (cause instanceof TypeError)
|
|
468
|
+
return { ...base, failure: 'network' };
|
|
469
|
+
return { ...base, failure: 'unknown' };
|
|
470
|
+
}
|
|
282
471
|
function resolveChainId(c) {
|
|
283
472
|
const parameter = c.req.param('chain');
|
|
284
473
|
if (parameter === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/rpc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,9 +57,25 @@ export declare namespace schema {
|
|
|
57
57
|
export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Environment, {
|
|
58
58
|
"/v1/tokenlist": {
|
|
59
59
|
$get: {
|
|
60
|
-
output:
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
output: {
|
|
61
|
+
name: string;
|
|
62
|
+
timestamp: string;
|
|
63
|
+
version: {
|
|
64
|
+
major: number;
|
|
65
|
+
minor: number;
|
|
66
|
+
patch: number;
|
|
67
|
+
};
|
|
68
|
+
tokens: {
|
|
69
|
+
chainId: number;
|
|
70
|
+
address: `0x${string}`;
|
|
71
|
+
name: string;
|
|
72
|
+
symbol: string;
|
|
73
|
+
decimals: number;
|
|
74
|
+
logoURI?: string | undefined;
|
|
75
|
+
}[];
|
|
76
|
+
};
|
|
77
|
+
outputFormat: "json";
|
|
78
|
+
status: 200;
|
|
63
79
|
input: {
|
|
64
80
|
query?: {
|
|
65
81
|
chainId?: string | string[];
|
|
@@ -84,14 +100,14 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
|
|
|
84
100
|
} | {
|
|
85
101
|
output: {
|
|
86
102
|
error: {
|
|
87
|
-
code: "
|
|
103
|
+
code: "query_invalid";
|
|
88
104
|
details?: readonly Response.error.Detail[] | undefined;
|
|
89
105
|
message: string;
|
|
90
106
|
};
|
|
91
107
|
requestId: string;
|
|
92
108
|
};
|
|
93
109
|
outputFormat: "json";
|
|
94
|
-
status:
|
|
110
|
+
status: 400;
|
|
95
111
|
input: {
|
|
96
112
|
query?: {
|
|
97
113
|
chainId?: string | string[];
|
|
@@ -100,30 +116,23 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
|
|
|
100
116
|
} | {
|
|
101
117
|
output: {
|
|
102
118
|
error: {
|
|
103
|
-
code: "
|
|
119
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
104
120
|
details?: readonly Response.error.Detail[] | undefined;
|
|
105
121
|
message: string;
|
|
106
122
|
};
|
|
107
123
|
requestId: string;
|
|
108
124
|
};
|
|
109
125
|
outputFormat: "json";
|
|
110
|
-
status:
|
|
126
|
+
status: 401;
|
|
111
127
|
input: {
|
|
112
128
|
query?: {
|
|
113
129
|
chainId?: string | string[];
|
|
114
130
|
} | undefined;
|
|
115
131
|
};
|
|
116
132
|
} | {
|
|
117
|
-
output:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
details?: readonly Response.error.Detail[] | undefined;
|
|
121
|
-
message: string;
|
|
122
|
-
};
|
|
123
|
-
requestId: string;
|
|
124
|
-
};
|
|
125
|
-
outputFormat: "json";
|
|
126
|
-
status: 429;
|
|
133
|
+
output: null;
|
|
134
|
+
outputFormat: "body";
|
|
135
|
+
status: 402;
|
|
127
136
|
input: {
|
|
128
137
|
query?: {
|
|
129
138
|
chainId?: string | string[];
|
|
@@ -132,14 +141,14 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
|
|
|
132
141
|
} | {
|
|
133
142
|
output: {
|
|
134
143
|
error: {
|
|
135
|
-
code: "
|
|
144
|
+
code: "api_key_forbidden";
|
|
136
145
|
details?: readonly Response.error.Detail[] | undefined;
|
|
137
146
|
message: string;
|
|
138
147
|
};
|
|
139
148
|
requestId: string;
|
|
140
149
|
};
|
|
141
150
|
outputFormat: "json";
|
|
142
|
-
status:
|
|
151
|
+
status: 403;
|
|
143
152
|
input: {
|
|
144
153
|
query?: {
|
|
145
154
|
chainId?: string | string[];
|
|
@@ -148,14 +157,14 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
|
|
|
148
157
|
} | {
|
|
149
158
|
output: {
|
|
150
159
|
error: {
|
|
151
|
-
code: "
|
|
160
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
152
161
|
details?: readonly Response.error.Detail[] | undefined;
|
|
153
162
|
message: string;
|
|
154
163
|
};
|
|
155
164
|
requestId: string;
|
|
156
165
|
};
|
|
157
166
|
outputFormat: "json";
|
|
158
|
-
status:
|
|
167
|
+
status: 429;
|
|
159
168
|
input: {
|
|
160
169
|
query?: {
|
|
161
170
|
chainId?: string | string[];
|
|
@@ -163,24 +172,15 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
|
|
|
163
172
|
};
|
|
164
173
|
} | {
|
|
165
174
|
output: {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
minor: number;
|
|
171
|
-
patch: number;
|
|
175
|
+
error: {
|
|
176
|
+
code: "upstream_error";
|
|
177
|
+
details?: readonly Response.error.Detail[] | undefined;
|
|
178
|
+
message: string;
|
|
172
179
|
};
|
|
173
|
-
|
|
174
|
-
chainId: number;
|
|
175
|
-
address: `0x${string}`;
|
|
176
|
-
name: string;
|
|
177
|
-
symbol: string;
|
|
178
|
-
decimals: number;
|
|
179
|
-
logoURI?: string | undefined;
|
|
180
|
-
}[];
|
|
180
|
+
requestId: string;
|
|
181
181
|
};
|
|
182
182
|
outputFormat: "json";
|
|
183
|
-
status:
|
|
183
|
+
status: 502;
|
|
184
184
|
input: {
|
|
185
185
|
query?: {
|
|
186
186
|
chainId?: string | string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenlist.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/tokenlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"tokenlist.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/tokenlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAK3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAOzD,mDAAmD;AACnD,yBAAiB,MAAM,CAAC;IACtB,gFAAgF;IACzE,MAAM,KAAK;;;;;;;qBAwCiE,CAAA;IAEnF,iEAAiE;IAC1D,MAAM,OAAO;;;;qBA2BsC,CAAA;IAE1D,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,2CAA2C;QACpC,MAAM,KAAK;;;;;0BAE4D,CAAA;QAE9E,yEAAyE;QAClE,MAAM,QAAQ;;;;;;;;;;;;;;;;yBAiB2E,CAAA;KACjG;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA2FxB"}
|
|
@@ -2,9 +2,11 @@ import { Hono } from 'hono';
|
|
|
2
2
|
import * as z from 'zod/mini';
|
|
3
3
|
import * as Auth from '../../../internal/Auth.js';
|
|
4
4
|
import * as Cache from '../../../internal/Cache.js';
|
|
5
|
+
import * as EdgeCache from '../../../internal/EdgeCache.js';
|
|
5
6
|
import * as OpenApi from '../../../internal/OpenApi.js';
|
|
6
7
|
import * as Response from '../../../internal/Response.js';
|
|
7
8
|
import * as Schema from '../../../internal/Schema.js';
|
|
9
|
+
import * as Timing from '../../../internal/Timing.js';
|
|
8
10
|
import * as VerifiedTokens from '../../../internal/VerifiedTokens.js';
|
|
9
11
|
import * as Viem from '../../../internal/Viem.js';
|
|
10
12
|
import { getTokenLogo } from './tokens.js';
|
|
@@ -107,11 +109,20 @@ export function tokenlist() {
|
|
|
107
109
|
}),
|
|
108
110
|
summary: 'Get token list',
|
|
109
111
|
tags: ['Verified Tokens'],
|
|
110
|
-
}),
|
|
112
|
+
}),
|
|
113
|
+
// Anonymous callers accept the route's five-minute freshness window.
|
|
114
|
+
// Credentialed reads keep snapshot-version invalidation.
|
|
115
|
+
EdgeCache.setEligibility(Cache.response({
|
|
111
116
|
cacheControl: Cache.policies.stable,
|
|
112
117
|
name: 'tempo-api:tokenlist:v1',
|
|
113
|
-
key: (c) =>
|
|
114
|
-
|
|
118
|
+
key: async (c) => {
|
|
119
|
+
const base = Cache.urlKey(c, schema.getTokenList.Query);
|
|
120
|
+
const query = schema.getTokenList.Query.parse(Object.fromEntries(new URL(c.req.url).searchParams));
|
|
121
|
+
const chainId = query.chainId ?? c.get('chainId');
|
|
122
|
+
const { version } = await VerifiedTokens.snapshot(c, chainId);
|
|
123
|
+
return `${base}:v:${version}`;
|
|
124
|
+
},
|
|
125
|
+
}), anonymousEdgeCache), async (c) => {
|
|
115
126
|
if (Auth.narrowAccess)
|
|
116
127
|
return Auth.paidAccessError(c);
|
|
117
128
|
if (OpenApi.narrowValidation)
|
|
@@ -123,11 +134,9 @@ export function tokenlist() {
|
|
|
123
134
|
const chainId = query.chainId ?? c.get('chainId');
|
|
124
135
|
try {
|
|
125
136
|
const snapshot = await VerifiedTokens.snapshot(c, chainId);
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// no stored `logoUri` — their logo lives in the asset store.
|
|
130
|
-
const logoURI = (await getTokenLogo(c, { address: token.address, chainId })) ?? token.logoUri; // prettier-ignore
|
|
137
|
+
const logos = await getTokenLogos(c, { chainId, tokens: snapshot.list });
|
|
138
|
+
const tokens = snapshot.list.map((token) => {
|
|
139
|
+
const logoURI = logos.get(token.address) ?? token.logoUri;
|
|
131
140
|
return {
|
|
132
141
|
chainId,
|
|
133
142
|
address: token.address,
|
|
@@ -136,7 +145,7 @@ export function tokenlist() {
|
|
|
136
145
|
decimals: token.decimals,
|
|
137
146
|
...(logoURI === undefined ? {} : { logoURI }),
|
|
138
147
|
};
|
|
139
|
-
})
|
|
148
|
+
});
|
|
140
149
|
const list = {
|
|
141
150
|
name: Viem.chains.find((chain) => chain.id === chainId)?.name ?? `Tempo ${chainId}`,
|
|
142
151
|
timestamp: snapshot.updatedAt,
|
|
@@ -150,4 +159,35 @@ export function tokenlist() {
|
|
|
150
159
|
}
|
|
151
160
|
});
|
|
152
161
|
}
|
|
162
|
+
function anonymousEdgeCache(c) {
|
|
163
|
+
return (!c.req.header('authorization') &&
|
|
164
|
+
!c.req.header('cookie') &&
|
|
165
|
+
!c.req.header('tempo-api-key') &&
|
|
166
|
+
!c.req.header('x-api-key'));
|
|
167
|
+
}
|
|
168
|
+
async function getTokenLogos(c, options) {
|
|
169
|
+
return Timing.time(c, 'token_logos', async () => {
|
|
170
|
+
const getAsset = c.get('getAsset');
|
|
171
|
+
const listAssets = getAsset.list;
|
|
172
|
+
if (!listAssets) {
|
|
173
|
+
const entries = await Promise.all(options.tokens.map(async (token) => [
|
|
174
|
+
token.address,
|
|
175
|
+
await getTokenLogo(c, { address: token.address, chainId: options.chainId }).catch(() => undefined),
|
|
176
|
+
]));
|
|
177
|
+
const logos = new Map();
|
|
178
|
+
for (const [address, uri] of entries)
|
|
179
|
+
if (uri)
|
|
180
|
+
logos.set(address, uri);
|
|
181
|
+
return logos;
|
|
182
|
+
}
|
|
183
|
+
// Logos are optional metadata; an asset-store outage must not hide the
|
|
184
|
+
// verified token list itself. Snapshot logo URIs remain available below.
|
|
185
|
+
const assets = await listAssets(options.chainId, 'icons/').catch(() => []);
|
|
186
|
+
const uris = new Map(assets.map((asset) => [asset.key, asset.uri]));
|
|
187
|
+
return new Map(options.tokens.flatMap((token) => {
|
|
188
|
+
const uri = uris.get(`${options.chainId}/icons/${token.address}`);
|
|
189
|
+
return uri ? [[token.address, uri]] : [];
|
|
190
|
+
}));
|
|
191
|
+
});
|
|
192
|
+
}
|
|
153
193
|
//# sourceMappingURL=tokenlist.js.map
|