tapimo 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -7
- package/dist/ApiKey.d.ts +3 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +10 -0
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +29 -8
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +24 -5
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +20680 -15487
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +250 -129
- 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 +667 -76
- 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 +107 -11
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +145 -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/organizations.d.ts +2 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +74 -74
- 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 +99 -43
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +4 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +21 -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 +5666 -3934
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +90 -22
- 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 +56 -56
- 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 +65 -65
- package/dist/apps/data/routes/balances.d.ts +14 -14
- package/dist/apps/data/routes/balances.js +5 -5
- 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/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 +2574 -0
- package/dist/apps/data/routes/earn.d.ts.map +1 -0
- package/dist/apps/data/routes/earn.js +1574 -0
- package/dist/apps/data/routes/earn.js.map +1 -0
- package/dist/apps/data/routes/exchanges.d.ts +1626 -719
- 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 +108 -108
- 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/indexer.d.ts +35 -35
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +23 -3
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +33 -33
- 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 +6 -6
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +214 -22
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +39 -8
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +115 -87
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +194 -91
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +54 -54
- 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 +76 -27
- 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 +42 -42
- 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 +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +370 -368
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +161 -59
- 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/funding/Access.d.ts +16 -0
- package/dist/apps/funding/Access.d.ts.map +1 -0
- package/dist/apps/funding/Access.js +22 -0
- package/dist/apps/funding/Access.js.map +1 -0
- package/dist/apps/funding/App.d.ts +3183 -0
- package/dist/apps/funding/App.d.ts.map +1 -0
- package/dist/apps/funding/App.js +46 -0
- package/dist/apps/funding/App.js.map +1 -0
- package/dist/apps/funding/Inventory.d.ts +5 -0
- package/dist/apps/funding/Inventory.d.ts.map +1 -0
- package/dist/apps/funding/Inventory.js +25 -0
- package/dist/apps/funding/Inventory.js.map +1 -0
- package/dist/apps/funding/ProviderAttempts.d.ts +5 -0
- package/dist/apps/funding/ProviderAttempts.d.ts.map +1 -0
- package/dist/apps/funding/ProviderAttempts.js +24 -0
- package/dist/apps/funding/ProviderAttempts.js.map +1 -0
- package/dist/apps/funding/index.d.ts +2 -0
- package/dist/apps/funding/index.d.ts.map +1 -0
- package/dist/apps/funding/index.js +2 -0
- package/dist/apps/funding/index.js.map +1 -0
- package/dist/apps/funding/routes/chains.d.ts +169 -0
- package/dist/apps/funding/routes/chains.d.ts.map +1 -0
- package/dist/apps/funding/routes/chains.js +80 -0
- package/dist/apps/funding/routes/chains.js.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts +2388 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.js +860 -0
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/funding/routes/providers.d.ts +91 -0
- package/dist/apps/funding/routes/providers.d.ts.map +1 -0
- package/dist/apps/funding/routes/providers.js +56 -0
- package/dist/apps/funding/routes/providers.js.map +1 -0
- package/dist/apps/{data/routes/funding.d.ts → funding/routes/quotes.d.ts} +26 -396
- package/dist/apps/funding/routes/quotes.d.ts.map +1 -0
- package/dist/apps/funding/routes/quotes.js +188 -0
- package/dist/apps/funding/routes/quotes.js.map +1 -0
- package/dist/apps/funding/routes/transfers.d.ts +1999 -0
- package/dist/apps/funding/routes/transfers.d.ts.map +1 -0
- package/dist/apps/funding/routes/transfers.js +614 -0
- package/dist/apps/funding/routes/transfers.js.map +1 -0
- package/dist/apps/index.d.ts +3 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +3 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +839 -574
- package/dist/apps/management/App.d.ts.map +1 -1
- 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 +296 -19
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +77 -9
- 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 +17 -17
- 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 +38 -38
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +69 -69
- package/dist/apps/management/routes/orgs.d.ts +16 -16
- 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 +19 -19
- package/dist/apps/management/routes/scopes.d.ts +1 -1
- package/dist/apps/management/routes/scopes.js +2 -2
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +72 -72
- package/dist/apps/management/routes/verified-token-requests.d.ts +18 -18
- package/dist/apps/management/routes/webhooks.d.ts +122 -122
- 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/mcp.d.ts +2 -3
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +16 -14
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/metadata.d.ts +4 -0
- package/dist/apps/metadata.d.ts.map +1 -1
- package/dist/apps/metadata.js +10 -0
- package/dist/apps/metadata.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +57 -58
- 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 +183 -23
- 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 +15 -6
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/cloudflare.d.ts +50 -0
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +178 -0
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +22 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +379 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +933 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +289 -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 +172 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.js +218 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
- package/dist/db/tables/fundingDepositRequestObservations.d.ts +45 -0
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositRequestObservations.js +46 -0
- package/dist/db/tables/fundingDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/fundingDeposits.d.ts +171 -0
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
- package/dist/db/tables/fundingDeposits.js +182 -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 +16 -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 +2 -2
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +1 -1
- 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 +37 -11
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +75 -16
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +17 -11
- 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 +10 -3
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +43 -11
- 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/IpAllowlist.d.ts +15 -0
- package/dist/internal/IpAllowlist.d.ts.map +1 -0
- package/dist/internal/IpAllowlist.js +27 -0
- package/dist/internal/IpAllowlist.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 +2 -2
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +4 -1
- 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 +6 -1
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +20 -11
- 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 +49 -24
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +90 -12
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +90 -65
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +90 -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 +408 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -0
- package/dist/internal/funding/Deposit.js +318 -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 +48 -0
- package/dist/internal/funding/Evidence.d.ts.map +1 -0
- package/dist/internal/funding/Evidence.js +315 -0
- package/dist/internal/funding/Evidence.js.map +1 -0
- package/dist/internal/funding/Provider.d.ts +1288 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -0
- package/dist/internal/funding/Provider.js +1086 -0
- package/dist/internal/funding/Provider.js.map +1 -0
- package/dist/internal/funding/Reconciliation.d.ts +127 -0
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
- package/dist/internal/funding/Reconciliation.js +885 -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/SourceObservation.d.ts +108 -0
- package/dist/internal/funding/SourceObservation.d.ts.map +1 -0
- package/dist/internal/funding/SourceObservation.js +143 -0
- package/dist/internal/funding/SourceObservation.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 +14 -0
- package/dist/internal/funding/index.d.ts.map +1 -0
- package/dist/internal/funding/index.js +14 -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 +88 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -0
- package/dist/internal/funding/providers/relay.js +871 -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 +10 -5
- package/src/ApiKey.test.ts +35 -0
- package/src/ApiKey.ts +27 -0
- package/src/ApiKeys.test.ts +40 -7
- package/src/ApiKeys.ts +46 -10
- package/src/App.test.ts +108 -15
- package/src/App.ts +296 -138
- package/src/Assets.ts +29 -4
- package/src/Client.test-d.ts +809 -37
- 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 +190 -22
- package/src/admin/apps/api-keys.ts +170 -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 +113 -43
- package/src/analytics/Analytics.test.ts +69 -10
- package/src/analytics/Analytics.ts +24 -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 +184 -3
- package/src/apps/data/App.test.ts +28 -23
- package/src/apps/data/App.ts +95 -36
- 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 +1391 -0
- package/src/apps/data/routes/earn.ts +2188 -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/indexer.test.ts +43 -34
- package/src/apps/data/routes/indexer.ts +21 -3
- 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 +245 -25
- package/src/apps/data/routes/tokenlist.ts +72 -19
- package/src/apps/data/routes/tokens.test.ts +6 -8
- package/src/apps/data/routes/tokens.ts +258 -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/webhooks.test.ts +386 -43
- package/src/apps/data/routes/webhooks.ts +172 -71
- 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/funding/Access.ts +26 -0
- package/src/apps/funding/App.test.ts +78 -0
- package/src/apps/funding/App.ts +63 -0
- package/src/apps/funding/Inventory.ts +30 -0
- package/src/apps/funding/ProviderAttempts.ts +26 -0
- package/src/apps/funding/index.ts +1 -0
- package/src/apps/funding/routes/chains.test.ts +78 -0
- package/src/apps/funding/routes/chains.ts +101 -0
- package/src/apps/funding/routes/deposit-addresses.test.ts +1628 -0
- package/src/apps/funding/routes/deposit-addresses.ts +1015 -0
- package/src/apps/funding/routes/providers.test.ts +165 -0
- package/src/apps/funding/routes/providers.ts +73 -0
- package/src/apps/funding/routes/quotes.test.ts +511 -0
- package/src/apps/funding/routes/quotes.ts +205 -0
- package/src/apps/funding/routes/transfers.test.ts +1255 -0
- package/src/apps/funding/routes/transfers.ts +704 -0
- package/src/apps/index.ts +3 -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 +103 -3
- package/src/apps/management/routes/api-keys.ts +98 -10
- 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/mcp.test.ts +17 -2
- package/src/apps/mcp.ts +18 -13
- package/src/apps/metadata.ts +12 -0
- 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 +128 -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 +493 -62
- package/src/apps/relay/App.ts +233 -23
- package/src/apps/relay/Sponsorships.test.ts +49 -0
- package/src/apps/relay/Sponsorships.ts +18 -6
- package/src/cloudflare.ts +279 -0
- package/src/db/Db.ts +501 -0
- package/src/db/Schema.ts +349 -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 +404 -0
- package/src/db/tables/fundingDepositRequestObservations.test.ts +106 -0
- package/src/db/tables/fundingDepositRequestObservations.ts +99 -0
- package/src/db/tables/fundingDeposits.test.ts +399 -0
- package/src/db/tables/fundingDeposits.ts +373 -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.ts +16 -0
- package/src/db/tables/projects.ts +16 -0
- package/src/db/tables/requestUsage.ts +23 -0
- package/src/db/tables/sponsoredTransactions.test.ts +11 -0
- package/src/db/tables/sponsoredTransactions.ts +3 -3
- 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 +225 -5
- package/src/internal/Auth.ts +109 -20
- package/src/internal/Cache.test.ts +37 -3
- package/src/internal/Cache.ts +14 -10
- 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 +26 -7
- package/src/internal/EdgeCache.ts +48 -9
- 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/IpAllowlist.test.ts +52 -0
- package/src/internal/IpAllowlist.ts +39 -0
- package/src/internal/Log.test-d.ts +41 -8
- package/src/internal/Log.test.ts +196 -9
- 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 +4 -1
- package/src/internal/Provider.test.ts +17 -0
- package/src/internal/Provider.ts +17 -0
- package/src/internal/Schema.ts +27 -17
- 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 +240 -18
- package/src/internal/Tidx.ts +129 -33
- package/src/internal/VerifiedTokens.test.ts +15 -0
- package/src/internal/Viem.test.ts +198 -17
- package/src/internal/Viem.ts +127 -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 +522 -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 +425 -0
- package/src/internal/funding/Provider.test.ts +1328 -0
- package/src/internal/funding/Provider.ts +1911 -0
- package/src/internal/funding/Reconciliation.local.test.ts +511 -0
- package/src/internal/funding/Reconciliation.test.ts +3037 -0
- package/src/internal/funding/Reconciliation.ts +1202 -0
- package/src/internal/funding/Route.test.ts +66 -0
- package/src/internal/funding/Route.ts +29 -0
- package/src/internal/funding/SourceObservation.test.ts +301 -0
- package/src/internal/funding/SourceObservation.ts +267 -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 +21 -0
- package/src/internal/funding/index.ts +13 -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 +564 -0
- package/src/internal/funding/providers/relay.ts +1060 -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/apps/data/routes/funding.d.ts.map +0 -1
- package/dist/apps/data/routes/funding.js +0 -410
- package/dist/apps/data/routes/funding.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/apps/data/routes/funding.test.ts +0 -503
- package/src/apps/data/routes/funding.ts +0 -604
- package/src/internal/FundingQuotes.test.ts +0 -456
- package/src/internal/FundingQuotes.ts +0 -944
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** @module-tag localnet */
|
|
2
|
+
|
|
1
3
|
import { Abis, Addresses } from 'viem/tempo'
|
|
2
4
|
|
|
3
5
|
import * as TestApp from '../../../../test/App.js'
|
|
@@ -259,12 +261,8 @@ describe('GET /fee-amm/mints', () => {
|
|
|
259
261
|
expect(secondResponse.status).toBe(200)
|
|
260
262
|
expect(second.data.length).toBeGreaterThan(0)
|
|
261
263
|
// No overlap across the page boundary, and ordering continues descending.
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
)
|
|
265
|
-
expect(
|
|
266
|
-
second.data.every((mint) => !firstKeys.has(`${mint.blockNumber}:${mint.transactionHash}`)),
|
|
267
|
-
).toBe(true)
|
|
264
|
+
const firstIds = new Set(first.data.map(({ id }) => id))
|
|
265
|
+
expect(second.data.every(({ id }) => !firstIds.has(id))).toBe(true)
|
|
268
266
|
expect(second.data[0]!.blockNumber).toBeLessThanOrEqual(first.data.at(-1)!.blockNumber)
|
|
269
267
|
})
|
|
270
268
|
|
|
@@ -44,6 +44,15 @@ const legacyMintTopic = AbiEvent.getSelector(
|
|
|
44
44
|
'event Mint(address indexed sender, address indexed userToken, address indexed validatorToken, uint256 amountUserToken, uint256 amountValidatorToken, uint256 liquidity)',
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
+
// Block windows for the mint feed's page sweep, widened geometrically until
|
|
48
|
+
// the page fills. An unbounded top-K over the FeeManager's mint history sorts
|
|
49
|
+
// every matching row (tens of millions on busy chains) and crosses TIDX's 5s
|
|
50
|
+
// execution cap, so the page query is bounded to a block window anchored at
|
|
51
|
+
// the cursor (or the feed's head/tail block); dense filters fill the first
|
|
52
|
+
// window, and only sparse filters, whose top-K is inherently cheap, fall
|
|
53
|
+
// through to the unbounded query.
|
|
54
|
+
const mintWindowBlocks = [100_000, 1_000_000, 10_000_000]
|
|
55
|
+
|
|
47
56
|
/** Zod schemas owned by the fee AMM handlers. */
|
|
48
57
|
export namespace schema {
|
|
49
58
|
/**
|
|
@@ -765,7 +774,9 @@ declare namespace getPoolReserves {
|
|
|
765
774
|
* Lists `Mint` logs as a keyset-paginated page on `(block_num, log_idx)`,
|
|
766
775
|
* optionally filtered by the pool's tokens. Runs on ClickHouse: the postgres
|
|
767
776
|
* `logs` table has no topic index, so topic-filtered pages exceed its
|
|
768
|
-
* statement timeout, while ClickHouse serves every filter shape.
|
|
777
|
+
* statement timeout, while ClickHouse serves every filter shape. The page
|
|
778
|
+
* query sweeps a widening block window (see `mintWindowBlocks`) so large
|
|
779
|
+
* chains never top-K sort the full mint history.
|
|
769
780
|
*/
|
|
770
781
|
function listMints(c: Context<App.Environment>, options: listMints.Options) {
|
|
771
782
|
const { chainId, limit, order, userToken, validatorToken } = options
|
|
@@ -807,17 +818,63 @@ function listMints(c: Context<App.Environment>, options: listMints.Options) {
|
|
|
807
818
|
// ClickHouse's timezone-less `DateTime` text as *local* time. The
|
|
808
819
|
// alias passes the raw text through so `Value.toIsoDateTime` can
|
|
809
820
|
// apply its UTC normalization instead.
|
|
810
|
-
const
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
+
const fetchPage = (where: readonly string[]) =>
|
|
822
|
+
tidx.fetch({
|
|
823
|
+
chainId,
|
|
824
|
+
engine: 'clickhouse',
|
|
825
|
+
query: `
|
|
826
|
+
SELECT tx_hash, block_num, log_idx, block_timestamp AS block_time, selector, topic1, topic2, topic3, data
|
|
827
|
+
FROM logs
|
|
828
|
+
WHERE ${where.join(' AND ')}
|
|
829
|
+
ORDER BY block_num ${direction}, log_idx ${direction}
|
|
830
|
+
LIMIT ${limit + 1}${offset !== undefined ? ` OFFSET ${offset}` : ''}
|
|
831
|
+
` as string,
|
|
832
|
+
})
|
|
833
|
+
|
|
834
|
+
// Window anchor: the cursor block when paginating, else the fee
|
|
835
|
+
// manager's newest (desc) or oldest (asc) log block. The bounds are
|
|
836
|
+
// shared by every filter shape and staleness only shifts the first
|
|
837
|
+
// window, so memoize them briefly per chain.
|
|
838
|
+
const anchor = await (async () => {
|
|
839
|
+
if (cursor !== undefined) return Number(cursor[0])
|
|
840
|
+
const bounds = await Store.memoize(
|
|
841
|
+
async () => {
|
|
842
|
+
// Dynamic raw-`logs` query, hence the cast. `address` aligns
|
|
843
|
+
// with the `logs` sort key, so the probe is index-pruned.
|
|
844
|
+
const result = await tidx.fetch({
|
|
845
|
+
chainId,
|
|
846
|
+
engine: 'clickhouse',
|
|
847
|
+
query:
|
|
848
|
+
`SELECT min(block_num) AS lo, max(block_num) AS hi FROM logs WHERE address = '${feeManager}'` as string,
|
|
849
|
+
})
|
|
850
|
+
const row = result.rows[0]
|
|
851
|
+
return {
|
|
852
|
+
hi: row ? Value.toNumber(row['hi']) : undefined,
|
|
853
|
+
lo: row ? Value.toNumber(row['lo']) : undefined,
|
|
854
|
+
}
|
|
855
|
+
},
|
|
856
|
+
{ key: `feeamm:v1:${chainId}:mints-bounds`, store, ttl: Ttl.minutes(1) },
|
|
857
|
+
)
|
|
858
|
+
return order === 'asc' ? bounds.lo : bounds.hi
|
|
859
|
+
})()
|
|
860
|
+
|
|
861
|
+
// Sweep the windows from the anchor: window rows are a prefix of the
|
|
862
|
+
// requested ordering, so a filled window returns exactly the rows the
|
|
863
|
+
// unbounded query would.
|
|
864
|
+
const result = await (async () => {
|
|
865
|
+
if (anchor !== undefined)
|
|
866
|
+
for (const window of mintWindowBlocks) {
|
|
867
|
+
// A window reaching past block 0 no longer bounds the scan.
|
|
868
|
+
if (order === 'desc' && window >= anchor) break
|
|
869
|
+
const bound =
|
|
870
|
+
order === 'asc'
|
|
871
|
+
? `block_num < ${anchor + window}`
|
|
872
|
+
: `block_num > ${anchor - window}`
|
|
873
|
+
const result = await fetchPage([...filters, bound])
|
|
874
|
+
if (result.rows.length >= limit + 1) return result
|
|
875
|
+
}
|
|
876
|
+
return fetchPage(filters)
|
|
877
|
+
})()
|
|
821
878
|
|
|
822
879
|
// The next page anchors below the last fetched row's `(block, log_idx)`.
|
|
823
880
|
const page = Cursor.paginate({
|
|
@@ -76,11 +76,14 @@ describe('GET /indexer/query', () => {
|
|
|
76
76
|
try {
|
|
77
77
|
const client = TestApp.client({
|
|
78
78
|
auth: { keys: [zoneReader] },
|
|
79
|
-
tidx: ({
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
:
|
|
83
|
-
|
|
79
|
+
tidx: { auth: JSON.stringify({ [zone]: 'zone:secret' }) },
|
|
80
|
+
zones: [
|
|
81
|
+
TestApp.zone({
|
|
82
|
+
chainId: zone,
|
|
83
|
+
rpcUrl: runtime.zone.publicZoneUrl,
|
|
84
|
+
tidxUrl: 'https://zone.tidx.test',
|
|
85
|
+
}),
|
|
86
|
+
],
|
|
84
87
|
})
|
|
85
88
|
const response = await client.v1.indexer.query.$get(
|
|
86
89
|
{ query: { chainId: String(zone), sql: 'select 1' } },
|
|
@@ -95,7 +98,7 @@ describe('GET /indexer/query', () => {
|
|
|
95
98
|
|
|
96
99
|
expect(response.status).toBe(200)
|
|
97
100
|
expect(new URL(upstream.url).origin).toBe('https://zone.tidx.test')
|
|
98
|
-
expect(upstream.headers.get('authorization')).toBe('Basic
|
|
101
|
+
expect(upstream.headers.get('authorization')).toBe('Basic em9uZTpzZWNyZXQ=')
|
|
99
102
|
expect(upstream.headers.get(ZoneRpcAuthentication.headerName)).toBeNull()
|
|
100
103
|
} finally {
|
|
101
104
|
fetch.mockRestore()
|
|
@@ -118,8 +121,8 @@ describe('GET /indexer/query', () => {
|
|
|
118
121
|
try {
|
|
119
122
|
const client = TestApp.client({
|
|
120
123
|
auth: { keys: [zoneReader] },
|
|
121
|
-
tidx: { baseUrl: 'https://zone.tidx.test'
|
|
122
|
-
zones: [{ chainId: zone,
|
|
124
|
+
tidx: { auth: 'zone-secret', baseUrl: 'https://zone.tidx.test' },
|
|
125
|
+
zones: [TestApp.zone({ chainId: zone, rpcUrl: runtime.zone.publicZoneUrl })],
|
|
123
126
|
})
|
|
124
127
|
const response = await client.v1.indexer.query.$get(
|
|
125
128
|
{ query: { chainId: String(zone), sql: 'select 1' } },
|
|
@@ -221,16 +224,18 @@ describe('GET /indexer/query', () => {
|
|
|
221
224
|
expect(body.ok).toMatchInlineSnapshot(`true`)
|
|
222
225
|
})
|
|
223
226
|
|
|
224
|
-
test('challenges anonymous callers for MPP payment', async () => {
|
|
227
|
+
test('challenges anonymous callers for MPP payment', { retry: 1 }, async () => {
|
|
225
228
|
const app = TestApp.create({
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
229
|
+
auth: {
|
|
230
|
+
mpp: {
|
|
231
|
+
secretKey: 'secret_test_key_0123456789abcdef',
|
|
232
|
+
session: {
|
|
233
|
+
chainId: Tempo.chain.id,
|
|
234
|
+
currency: Tempo.currency,
|
|
235
|
+
decimals: 6,
|
|
236
|
+
getClient: () => Tempo.client,
|
|
237
|
+
recipient: Tempo.accounts[2].address,
|
|
238
|
+
},
|
|
234
239
|
},
|
|
235
240
|
},
|
|
236
241
|
})
|
|
@@ -259,14 +264,16 @@ describe('GET /indexer/query', () => {
|
|
|
259
264
|
|
|
260
265
|
test('rejects an unsupported chain before issuing an MPP challenge', async () => {
|
|
261
266
|
const app = TestApp.create({
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
267
|
+
auth: {
|
|
268
|
+
mpp: {
|
|
269
|
+
secretKey: 'secret_test_key_0123456789abcdef',
|
|
270
|
+
session: {
|
|
271
|
+
chainId: Tempo.chain.id,
|
|
272
|
+
currency: Tempo.currency,
|
|
273
|
+
decimals: 6,
|
|
274
|
+
getClient: () => Tempo.client,
|
|
275
|
+
recipient: Tempo.accounts[2].address,
|
|
276
|
+
},
|
|
270
277
|
},
|
|
271
278
|
},
|
|
272
279
|
})
|
|
@@ -282,15 +289,17 @@ describe('GET /indexer/query', () => {
|
|
|
282
289
|
|
|
283
290
|
test('accepts session management POSTs', { timeout: 120_000 }, async () => {
|
|
284
291
|
const app = TestApp.create({
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
292
|
+
auth: {
|
|
293
|
+
mpp: {
|
|
294
|
+
secretKey: 'secret_test_key_0123456789abcdef',
|
|
295
|
+
session: {
|
|
296
|
+
account: Tempo.accounts[2],
|
|
297
|
+
chainId: Viem.chainId.mainnet,
|
|
298
|
+
currency: Tempo.currency,
|
|
299
|
+
decimals: 6,
|
|
300
|
+
getClient: () => Tempo.client,
|
|
301
|
+
suggestedDeposit: '0.01',
|
|
302
|
+
},
|
|
294
303
|
},
|
|
295
304
|
},
|
|
296
305
|
})
|
|
@@ -10,6 +10,7 @@ import * as Path from '../../../internal/Path.js'
|
|
|
10
10
|
import * as Response from '../../../internal/Response.js'
|
|
11
11
|
import * as Schema from '../../../internal/Schema.js'
|
|
12
12
|
import * as Tidx from '../../../internal/Tidx.js'
|
|
13
|
+
import * as Timing from '../../../internal/Timing.js'
|
|
13
14
|
|
|
14
15
|
// Request headers that must not be forwarded upstream: hop-by-hop headers, the
|
|
15
16
|
// inbound host, and any caller auth so the consumer's Tempo API credentials never
|
|
@@ -258,9 +259,10 @@ async function passthrough(
|
|
|
258
259
|
// Resolve the upstream for this caller. A resolver `tidx` can route by
|
|
259
260
|
// principal (e.g. anonymous `type: 'public'` callers to a public, no-auth
|
|
260
261
|
// indexer); a static config ignores the principal.
|
|
261
|
-
const { baseUrl, basicAuth, bearerAuth } = Tidx.resolve(tidx, {
|
|
262
|
+
const { baseUrl, basicAuth, bearerAuth, zoneHeaders } = Tidx.resolve(tidx, {
|
|
262
263
|
chainId,
|
|
263
264
|
principal: Auth.getPrincipal(c),
|
|
265
|
+
zone: c.get('zones').get(chainId),
|
|
264
266
|
})
|
|
265
267
|
// The chain id is syntactically valid but this deployment has no indexer
|
|
266
268
|
// upstream configured for it (no `tidx` config and no built-in default).
|
|
@@ -294,6 +296,7 @@ async function passthrough(
|
|
|
294
296
|
const headers = new Headers()
|
|
295
297
|
for (const [name, value] of c.req.raw.headers)
|
|
296
298
|
if (!strippedHeaders.has(name.toLowerCase())) headers.set(name, value)
|
|
299
|
+
if (zoneHeaders) for (const [name, value] of new Headers(zoneHeaders)) headers.set(name, value)
|
|
297
300
|
if (basicAuth) headers.set('authorization', `Basic ${btoa(basicAuth)}`)
|
|
298
301
|
else if (bearerAuth) headers.set('authorization', `Bearer ${bearerAuth}`)
|
|
299
302
|
|
|
@@ -311,10 +314,24 @@ async function passthrough(
|
|
|
311
314
|
// request forever: the upstream's own per-query ceiling is 30 s, so 35 s
|
|
312
315
|
// only fires when the connection itself stalls. The SSE `live` stream is
|
|
313
316
|
// long-lived by design and gets no timeout.
|
|
314
|
-
|
|
317
|
+
const live = isLive(c)
|
|
318
|
+
if (!live) init.signal = AbortSignal.timeout(35_000)
|
|
315
319
|
|
|
316
320
|
try {
|
|
317
|
-
const response = await
|
|
321
|
+
const { failure, response } = await Timing.time(c, 'tidx', async () => {
|
|
322
|
+
const response = await fetch(new Request(upstream, init))
|
|
323
|
+
// Syntax/validation failures belong to the caller, not the dependency's
|
|
324
|
+
// operational error ratio.
|
|
325
|
+
const failure = Tidx.isQueryRejection(response)
|
|
326
|
+
? undefined
|
|
327
|
+
: live
|
|
328
|
+
? response.ok
|
|
329
|
+
? undefined
|
|
330
|
+
: Tidx.providerFailure(response)
|
|
331
|
+
: await Tidx.responseFailure(response)
|
|
332
|
+
return { failure, response }
|
|
333
|
+
})
|
|
334
|
+
c.set('providerFailure', failure ? { ...failure, chainId } : undefined)
|
|
318
335
|
|
|
319
336
|
// Stream the upstream response back verbatim so both JSON queries and
|
|
320
337
|
// SSE `live` streams pass through untouched.
|
|
@@ -323,6 +340,7 @@ async function passthrough(
|
|
|
323
340
|
} catch (cause) {
|
|
324
341
|
// Timeouts and network failures become the standard 502 envelope instead
|
|
325
342
|
// of an unhandled 500.
|
|
343
|
+
c.set('providerFailure', { ...Tidx.providerFailure(cause), chainId })
|
|
326
344
|
return Response.upstream(c, cause) as never
|
|
327
345
|
}
|
|
328
346
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** @module-tag localnet */
|
|
2
|
+
|
|
1
3
|
import { Schema } from 'tapimo'
|
|
2
4
|
import { FxOracle } from 'tapimo/apps'
|
|
3
5
|
import { Hex, Value as core_Value } from 'ox'
|
|
@@ -205,7 +207,7 @@ describe('GET /transactions/receipts', () => {
|
|
|
205
207
|
|
|
206
208
|
// Denominations are case-insensitive.
|
|
207
209
|
const response = await client.v1.transactions[':transactionHash'].receipt.$get(
|
|
208
|
-
{ param: { transactionHash: transactionHash! }, query: {
|
|
210
|
+
{ param: { transactionHash: transactionHash! }, query: { 'valuation.currency': 'aud' } },
|
|
209
211
|
TestApp.auth,
|
|
210
212
|
)
|
|
211
213
|
const body = await TestApp.json(response, Receipts.schema.getReceipt.Response)
|
|
@@ -219,7 +221,7 @@ describe('GET /transactions/receipts', () => {
|
|
|
219
221
|
amount: core_Value.format((BigInt(body.feeAmount.baseUnits) * 16n) / 10n, 6),
|
|
220
222
|
currency: 'AUD',
|
|
221
223
|
})
|
|
222
|
-
expect(body.meta.
|
|
224
|
+
expect(body.meta.valuation).toMatchInlineSnapshot(`
|
|
223
225
|
{
|
|
224
226
|
"asOf": "2026-01-01T00:00:00.000Z",
|
|
225
227
|
"basis": "nominal",
|
|
@@ -299,7 +301,7 @@ describe('GET /transactions/receipts', () => {
|
|
|
299
301
|
amount: receipt.feeAmount.formatted,
|
|
300
302
|
currency: 'USD',
|
|
301
303
|
})
|
|
302
|
-
expect(body.meta!.
|
|
304
|
+
expect(body.meta!.valuation).toBeUndefined()
|
|
303
305
|
|
|
304
306
|
// Without `include=totalCount`, the same page omits `meta` and the count.
|
|
305
307
|
const bare = await client.v1.transactions.receipts.$get(
|
|
@@ -189,7 +189,7 @@ export namespace schema {
|
|
|
189
189
|
/** Receipt metadata containing valuation provenance and the verbatim JSON-RPC receipt. */
|
|
190
190
|
export const ReceiptMeta = z
|
|
191
191
|
.object({
|
|
192
|
-
|
|
192
|
+
valuation: z
|
|
193
193
|
.optional(Valuation.schema.Pricing)
|
|
194
194
|
.check(
|
|
195
195
|
z.describe(
|
|
@@ -198,7 +198,7 @@ export namespace schema {
|
|
|
198
198
|
),
|
|
199
199
|
rpc: Rpc.Receipt.check(z.describe('The original JSON-RPC receipt payload.')),
|
|
200
200
|
})
|
|
201
|
-
.check(z.describe('Metadata for this receipt, including
|
|
201
|
+
.check(z.describe('Metadata for this receipt, including valuation and the JSON-RPC payload.'))
|
|
202
202
|
|
|
203
203
|
/** The fee charged to the fee payer, carrying its value in the requested denomination. */
|
|
204
204
|
export const FeeAmount = z
|
|
@@ -207,7 +207,7 @@ export namespace schema {
|
|
|
207
207
|
.optional(z.nullable(Valuation.schema.Value))
|
|
208
208
|
.check(
|
|
209
209
|
z.describe(
|
|
210
|
-
'The fee’s nominal value in the requested `
|
|
210
|
+
'The fee’s nominal value in the requested `valuation.currency`. `null` when rates were unavailable.',
|
|
211
211
|
),
|
|
212
212
|
),
|
|
213
213
|
})
|
|
@@ -283,7 +283,9 @@ export namespace schema {
|
|
|
283
283
|
z.describe('Event logs emitted by this transaction, returned in JSON-RPC log format.'),
|
|
284
284
|
),
|
|
285
285
|
meta: ReceiptMeta.check(
|
|
286
|
-
z.describe(
|
|
286
|
+
z.describe(
|
|
287
|
+
'Receipt metadata containing valuation rate provenance and the JSON-RPC payload.',
|
|
288
|
+
),
|
|
287
289
|
),
|
|
288
290
|
recipient: z
|
|
289
291
|
.nullable(Schema.Address)
|
|
@@ -360,8 +362,8 @@ export namespace schema {
|
|
|
360
362
|
export const Query = z
|
|
361
363
|
.strictObject({
|
|
362
364
|
chainId: Schema.ChainIdQuery,
|
|
363
|
-
denomination: Schema.Denomination,
|
|
364
365
|
include: includeQuery,
|
|
366
|
+
'valuation.currency': Schema.Denomination,
|
|
365
367
|
})
|
|
366
368
|
.check(z.describe('Query parameters for looking up a receipt.'))
|
|
367
369
|
|
|
@@ -398,7 +400,6 @@ export namespace schema {
|
|
|
398
400
|
'blockNumber.to': Schema.blockNumberBound('receipts', 'to'),
|
|
399
401
|
chainId: Schema.ChainIdQuery,
|
|
400
402
|
cursor: Schema.Cursor,
|
|
401
|
-
denomination: Schema.Denomination,
|
|
402
403
|
feePayer: z
|
|
403
404
|
.optional(Schema.Address)
|
|
404
405
|
.check(z.describe('Filter to receipts whose transaction fee was paid by this address.')),
|
|
@@ -425,6 +426,7 @@ export namespace schema {
|
|
|
425
426
|
),
|
|
426
427
|
'timestamp.from': Schema.timestampBound('receipts', 'from'),
|
|
427
428
|
'timestamp.to': Schema.timestampBound('receipts', 'to'),
|
|
429
|
+
'valuation.currency': Schema.Denomination,
|
|
428
430
|
})
|
|
429
431
|
.check(...Schema.pageChecks(), z.describe('Query parameters for listing receipts.'))
|
|
430
432
|
|
|
@@ -438,7 +440,7 @@ export namespace schema {
|
|
|
438
440
|
/** Page-level resources: opt-in counts plus valuation rate provenance. */
|
|
439
441
|
export const Meta = z
|
|
440
442
|
.object({
|
|
441
|
-
|
|
443
|
+
valuation: z
|
|
442
444
|
.optional(Valuation.schema.Pricing)
|
|
443
445
|
.check(
|
|
444
446
|
z.describe(
|
|
@@ -551,7 +553,7 @@ export function receipts(options: receipts.Options = {}) {
|
|
|
551
553
|
|
|
552
554
|
// Value each fee via its own currency tag, in the requested
|
|
553
555
|
// denomination.
|
|
554
|
-
const denomination = query.
|
|
556
|
+
const denomination = query['valuation.currency'] ?? 'USD'
|
|
555
557
|
const rates = await Valuation.ratesFor(c, {
|
|
556
558
|
currencies: receipts.data.map((receipt) => receipt.feeAmount.currency),
|
|
557
559
|
denomination,
|
|
@@ -572,7 +574,7 @@ export function receipts(options: receipts.Options = {}) {
|
|
|
572
574
|
|
|
573
575
|
const counts = countPromise ? await countPromise : undefined
|
|
574
576
|
const meta = {
|
|
575
|
-
...(rates ? {
|
|
577
|
+
...(rates ? { valuation: Valuation.pricing(rates, oracle) } : {}),
|
|
576
578
|
...counts,
|
|
577
579
|
}
|
|
578
580
|
return c.json(
|
|
@@ -678,7 +680,7 @@ export function receipts(options: receipts.Options = {}) {
|
|
|
678
680
|
|
|
679
681
|
// Value the fee via its own currency tag, in the requested
|
|
680
682
|
// denomination.
|
|
681
|
-
const denomination = query.
|
|
683
|
+
const denomination = query['valuation.currency'] ?? 'USD'
|
|
682
684
|
const rates = await Valuation.ratesFor(c, {
|
|
683
685
|
currencies: [enriched.feeAmount.currency],
|
|
684
686
|
denomination,
|
|
@@ -697,7 +699,7 @@ export function receipts(options: receipts.Options = {}) {
|
|
|
697
699
|
},
|
|
698
700
|
meta: {
|
|
699
701
|
...enriched.meta,
|
|
700
|
-
...(rates ? {
|
|
702
|
+
...(rates ? { valuation: Valuation.pricing(rates, oracle) } : {}),
|
|
701
703
|
},
|
|
702
704
|
}
|
|
703
705
|
return c.json(Response.validated(schema.getReceipt.Response, valued), 200)
|