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,3 +1,4 @@
|
|
|
1
|
+
// TODO(tidx-v1): Restore `queryOutbound` from commit `de87725` after TIDX v1 ships. Remove the receipt-side merge and bounded follow-up lookup.
|
|
1
2
|
import { Hono } from 'hono';
|
|
2
3
|
import { Address, Hex } from 'ox';
|
|
3
4
|
import { parseEventLogs, zeroAddress } from 'viem';
|
|
@@ -12,6 +13,7 @@ import * as OpenApi from '../../../internal/OpenApi.js';
|
|
|
12
13
|
import * as Response from '../../../internal/Response.js';
|
|
13
14
|
import * as Schema from '../../../internal/Schema.js';
|
|
14
15
|
import * as Store from '../../../internal/Store.js';
|
|
16
|
+
import * as Tidx from '../../../internal/Tidx.js';
|
|
15
17
|
import * as Timing from '../../../internal/Timing.js';
|
|
16
18
|
import * as Ttl from '../../../internal/Ttl.js';
|
|
17
19
|
import * as Value from '../../../internal/Value.js';
|
|
@@ -39,7 +41,7 @@ export var schema;
|
|
|
39
41
|
const ValuedAmount = z.extend(Schema.TokenAmount, {
|
|
40
42
|
valuation: z
|
|
41
43
|
.optional(z.nullable(Valuation.schema.Value))
|
|
42
|
-
.check(z.describe('The amount’s nominal value in the requested `
|
|
44
|
+
.check(z.describe('The amount’s nominal value in the requested `valuation.currency`. `null` when the token is ' +
|
|
43
45
|
'unverified, its display currency has no rate, or rates were unavailable.')),
|
|
44
46
|
});
|
|
45
47
|
/** Self-contained amount for a destination token. */
|
|
@@ -51,7 +53,7 @@ export var schema;
|
|
|
51
53
|
/** Page-level resources: valuation rate provenance. */
|
|
52
54
|
schema.Meta = z
|
|
53
55
|
.object({
|
|
54
|
-
|
|
56
|
+
valuation: z
|
|
55
57
|
.optional(Valuation.schema.Pricing)
|
|
56
58
|
.check(z.describe('Rate provenance for amount valuations. Present when conversion rates were ' +
|
|
57
59
|
'consulted; absent when every value was identity-valued or rates were unavailable.')),
|
|
@@ -1166,7 +1168,6 @@ export var schema;
|
|
|
1166
1168
|
.strictObject({
|
|
1167
1169
|
chainId: Schema.ChainIdQuery,
|
|
1168
1170
|
cursor: Schema.Cursor,
|
|
1169
|
-
denomination: Schema.Denomination,
|
|
1170
1171
|
// Folding is opt-in: by default every item is returned at the root.
|
|
1171
1172
|
group: z
|
|
1172
1173
|
._default(Schema.booleanQuery(), false)
|
|
@@ -1178,6 +1179,7 @@ export var schema;
|
|
|
1178
1179
|
logs: z
|
|
1179
1180
|
._default(Schema.booleanQuery(), false)
|
|
1180
1181
|
.check(z.describe('Set to `true` to attach each item’s full transaction log set (decoded when possible) as a top-level `events` array, so no co-located log is hidden. Defaults to `false`. `unknown` items always include it.'), z.meta({ examples: [true] })),
|
|
1182
|
+
'valuation.currency': Schema.Denomination,
|
|
1181
1183
|
})
|
|
1182
1184
|
.check(z.describe('Query parameters for the address activity request. This feed uses cursor pagination only because activity classification can fold a variable number of rows into each entry, so positional `page` pagination would not be stable.'));
|
|
1183
1185
|
/**
|
|
@@ -1209,13 +1211,13 @@ export var schema;
|
|
|
1209
1211
|
getTransactionActivities.Query = z
|
|
1210
1212
|
.strictObject({
|
|
1211
1213
|
chainId: Schema.ChainIdQuery,
|
|
1212
|
-
denomination: Schema.Denomination,
|
|
1213
1214
|
include: schema.includeQuery,
|
|
1214
1215
|
// Raw-log capture is opt-in: it can add a large `events` array to every
|
|
1215
1216
|
// item, so the default response stays lean.
|
|
1216
1217
|
logs: z
|
|
1217
1218
|
._default(Schema.booleanQuery(), false)
|
|
1218
1219
|
.check(z.describe('Set to `true` to attach each item’s full transaction log set (decoded when possible) as a top-level `events` array, so no co-located log is hidden. Defaults to `false`. `unknown` items always include it.'), z.meta({ examples: [true] })),
|
|
1220
|
+
'valuation.currency': Schema.Denomination,
|
|
1219
1221
|
})
|
|
1220
1222
|
.check(z.describe('Query parameters for the transaction activity request.'));
|
|
1221
1223
|
/**
|
|
@@ -1404,8 +1406,8 @@ function baseFor(options) {
|
|
|
1404
1406
|
* Creates address-scoped activity handlers, mounted under the `/addresses`
|
|
1405
1407
|
* composer. Exposes `GET /:address/activities`.
|
|
1406
1408
|
*
|
|
1407
|
-
* Runs the full activity classification pipeline:
|
|
1408
|
-
*
|
|
1409
|
+
* Runs the full activity classification pipeline: outbound receipt/log
|
|
1410
|
+
* lookups plus inbound and outbound transfer queries, merged
|
|
1409
1411
|
* and decoded into typed items (`transfer`/`mint`/`burn`/`swap`/
|
|
1410
1412
|
* `approval`/`session-closed`/`access-key-created`/`access-key-revoked`/
|
|
1411
1413
|
* `token-created`/`burn-blocked`/`channel-opened`/`channel-funded`/
|
|
@@ -1478,7 +1480,7 @@ export function addresses(options = {}) {
|
|
|
1478
1480
|
// Build immutable token and structured amount copies from RPC metadata.
|
|
1479
1481
|
const { items, rates } = await enrichTokens(c, {
|
|
1480
1482
|
chainId,
|
|
1481
|
-
denomination: query.
|
|
1483
|
+
denomination: query['valuation.currency'] ?? 'USD',
|
|
1482
1484
|
include: query.include,
|
|
1483
1485
|
items: unenrichedItems,
|
|
1484
1486
|
oracle,
|
|
@@ -1488,7 +1490,7 @@ export function addresses(options = {}) {
|
|
|
1488
1490
|
const data = query.group ? groupByAccessKey(items) : items;
|
|
1489
1491
|
return c.json(Response.validated(schema.getAddressActivities.Response, {
|
|
1490
1492
|
data,
|
|
1491
|
-
...(rates ? { meta: {
|
|
1493
|
+
...(rates ? { meta: { valuation: Valuation.pricing(rates, oracle) } } : {}),
|
|
1492
1494
|
nextCursor,
|
|
1493
1495
|
}), 200);
|
|
1494
1496
|
}
|
|
@@ -1580,14 +1582,14 @@ export function transactions(options = {}) {
|
|
|
1580
1582
|
// Build immutable token and structured amount copies from RPC metadata.
|
|
1581
1583
|
const { items, rates } = await enrichTokens(c, {
|
|
1582
1584
|
chainId,
|
|
1583
|
-
denomination: query.
|
|
1585
|
+
denomination: query['valuation.currency'] ?? 'USD',
|
|
1584
1586
|
include: query.include,
|
|
1585
1587
|
items: unenrichedItems,
|
|
1586
1588
|
oracle,
|
|
1587
1589
|
});
|
|
1588
1590
|
return c.json(Response.validated(schema.getTransactionActivities.Response, {
|
|
1589
1591
|
data: items,
|
|
1590
|
-
...(rates ? { meta: {
|
|
1592
|
+
...(rates ? { meta: { valuation: Valuation.pricing(rates, oracle) } } : {}),
|
|
1591
1593
|
}), 200);
|
|
1592
1594
|
}
|
|
1593
1595
|
catch (cause) {
|
|
@@ -1708,8 +1710,8 @@ export async function list(provider, options) {
|
|
|
1708
1710
|
/**
|
|
1709
1711
|
* Creates a TIDX-backed {@link Provider} that runs three sub-queries in
|
|
1710
1712
|
* parallel and merges them:
|
|
1711
|
-
* - Q1 (outbound):
|
|
1712
|
-
*
|
|
1713
|
+
* - Q1 (outbound): page receipts where the address is `from` or `fee_payer`,
|
|
1714
|
+
* then fetch the selected transactions' logs with a bounded lookup.
|
|
1713
1715
|
* - Q2 (inbound): decoded `Transfer` events to the address.
|
|
1714
1716
|
* - Q3 (outbound transfers): decoded `Transfer` events from the address
|
|
1715
1717
|
* (catches access-key-signed sends where `tx.from` differs from the address).
|
|
@@ -1726,63 +1728,95 @@ export function tidx(deps) {
|
|
|
1726
1728
|
return { blockNum: decoded[0], txIdx: decoded[1] };
|
|
1727
1729
|
}
|
|
1728
1730
|
/**
|
|
1729
|
-
* Q1
|
|
1730
|
-
*
|
|
1731
|
-
*
|
|
1732
|
-
* The cursor uses a two-predicate keyset (`block_num <= N` AND `(block_num <
|
|
1733
|
-
* N OR tx_idx < M)`) rather than a plain `block_num < N`: the `<= N` upper
|
|
1734
|
-
* bound lets the ClickHouse planner seek to the cursor block on the
|
|
1735
|
-
* `(block_num, tx_idx)` primary key instead of scanning from the tip, which
|
|
1736
|
-
* is what avoids planner 422s on busy addresses. Over-fetch `limit * 4`
|
|
1737
|
-
* (never `OFFSET`) because one tx fans out into many log rows that
|
|
1738
|
-
* `groupByTx` collapses back into a single group.
|
|
1731
|
+
* Q1 pages outbound receipts, then fetches their logs by bounded block range
|
|
1732
|
+
* and transaction hash. The cursor preserves block and transaction index order.
|
|
1739
1733
|
*/
|
|
1740
1734
|
async function queryOutbound(options) {
|
|
1741
1735
|
const { address, cursor, limit } = options;
|
|
1742
1736
|
const keyset = cursor
|
|
1743
|
-
? `AND
|
|
1737
|
+
? `AND block_num <= ${cursor.blockNum} AND (block_num < ${cursor.blockNum} OR tx_idx < ${cursor.txIdx})`
|
|
1744
1738
|
: '';
|
|
1745
|
-
|
|
1746
|
-
const
|
|
1739
|
+
const queryLimit = limit + 1;
|
|
1740
|
+
const fetchReceipts = (side) => tidxClient.fetch({
|
|
1747
1741
|
chainId,
|
|
1742
|
+
// Raw-table query (no signature-decoded CTE), so the inline SQL is cast
|
|
1743
|
+
// to `string`.
|
|
1748
1744
|
query: `
|
|
1749
|
-
|
|
1750
|
-
receipts
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
receipts.fee_payer AS fee_payer,
|
|
1756
|
-
logs.address AS log_address,
|
|
1757
|
-
logs.selector AS selector,
|
|
1758
|
-
logs.topic1 AS topic1,
|
|
1759
|
-
logs.topic2 AS topic2,
|
|
1760
|
-
logs.topic3 AS topic3,
|
|
1761
|
-
logs.data AS data,
|
|
1762
|
-
logs.log_idx AS log_idx
|
|
1763
|
-
FROM receipts
|
|
1764
|
-
INNER JOIN logs ON logs.tx_hash = receipts.tx_hash
|
|
1765
|
-
WHERE (receipts."from" = '${address}' OR receipts.fee_payer = '${address}') ${keyset}
|
|
1766
|
-
ORDER BY receipts.block_num DESC, receipts.tx_idx DESC
|
|
1767
|
-
LIMIT ${limit * 4}
|
|
1768
|
-
`,
|
|
1745
|
+
SELECT tx_hash, block_num, block_timestamp, tx_idx, "from", fee_payer
|
|
1746
|
+
FROM receipts
|
|
1747
|
+
WHERE "${side}" = '${address}' ${keyset}
|
|
1748
|
+
ORDER BY block_num DESC, tx_idx DESC
|
|
1749
|
+
LIMIT ${queryLimit}
|
|
1750
|
+
`,
|
|
1769
1751
|
});
|
|
1770
|
-
|
|
1752
|
+
// Fetching `limit + 1` from each side is sufficient to form the newest
|
|
1753
|
+
// `limit + 1` transactions after the two ordered sets are merged.
|
|
1754
|
+
const [paid, sent] = await Promise.all([fetchReceipts('fee_payer'), fetchReceipts('from')]);
|
|
1755
|
+
const seen = new Set();
|
|
1756
|
+
const receipts = [...paid.rows, ...sent.rows]
|
|
1757
|
+
.map((r) => ({
|
|
1771
1758
|
blockNum: Number(Value.toNumber(r['block_num'])),
|
|
1772
1759
|
blockTimestamp: Number(Value.toNumber(r['block_timestamp'])),
|
|
1773
|
-
data: Value.toText(r['data']) ?? null,
|
|
1774
1760
|
feePayer: lowerOrNull(r['fee_payer']),
|
|
1775
|
-
logAddress: lower(r['log_address']),
|
|
1776
|
-
logIdx: Number(Value.toNumber(r['log_idx'])),
|
|
1777
|
-
selector: Value.toText(r['selector']) ?? null,
|
|
1778
|
-
source: 'q1',
|
|
1779
|
-
topic1: Value.toText(r['topic1']) ?? null,
|
|
1780
|
-
topic2: Value.toText(r['topic2']) ?? null,
|
|
1781
|
-
topic3: Value.toText(r['topic3']) ?? null,
|
|
1782
1761
|
txHash: lowerHash(r['tx_hash']),
|
|
1783
1762
|
txIdx: Number(Value.toNumber(r['tx_idx'])),
|
|
1784
|
-
txSender: lowerOrNull(r['
|
|
1785
|
-
}))
|
|
1763
|
+
txSender: lowerOrNull(r['from']),
|
|
1764
|
+
}))
|
|
1765
|
+
.filter((receipt) => {
|
|
1766
|
+
if (seen.has(receipt.txHash))
|
|
1767
|
+
return false;
|
|
1768
|
+
seen.add(receipt.txHash);
|
|
1769
|
+
return true;
|
|
1770
|
+
})
|
|
1771
|
+
.sort((a, b) => {
|
|
1772
|
+
if (a.blockNum !== b.blockNum)
|
|
1773
|
+
return b.blockNum - a.blockNum;
|
|
1774
|
+
return b.txIdx - a.txIdx;
|
|
1775
|
+
})
|
|
1776
|
+
.slice(0, queryLimit);
|
|
1777
|
+
if (receipts.length === 0)
|
|
1778
|
+
return [];
|
|
1779
|
+
const blocks = receipts.map((receipt) => receipt.blockNum);
|
|
1780
|
+
const receiptByHash = new Map(receipts.map((receipt) => [receipt.txHash, receipt]));
|
|
1781
|
+
const txHashes = receipts.map((receipt) => `'${receipt.txHash}'`).join(', ');
|
|
1782
|
+
// `logs` is not keyed by transaction hash, so pair the bounded hash list
|
|
1783
|
+
// with the selected receipts' block range to avoid a full archive scan.
|
|
1784
|
+
const logs = await tidxClient.fetch({
|
|
1785
|
+
chainId,
|
|
1786
|
+
// Raw-table query (no signature-decoded CTE), so the inline SQL is cast
|
|
1787
|
+
// to `string`.
|
|
1788
|
+
query: `
|
|
1789
|
+
SELECT tx_hash, block_num, tx_idx, log_idx, address, selector, topic1, topic2, topic3, data
|
|
1790
|
+
FROM logs
|
|
1791
|
+
WHERE block_num BETWEEN ${Math.min(...blocks)} AND ${Math.max(...blocks)}
|
|
1792
|
+
AND tx_hash IN (${txHashes})
|
|
1793
|
+
ORDER BY block_num DESC, tx_idx DESC, log_idx ASC
|
|
1794
|
+
`,
|
|
1795
|
+
});
|
|
1796
|
+
const rows = logs.rows.flatMap((r) => {
|
|
1797
|
+
const receipt = receiptByHash.get(lowerHash(r['tx_hash']));
|
|
1798
|
+
if (!receipt)
|
|
1799
|
+
return [];
|
|
1800
|
+
return [
|
|
1801
|
+
{
|
|
1802
|
+
blockNum: receipt.blockNum,
|
|
1803
|
+
blockTimestamp: receipt.blockTimestamp,
|
|
1804
|
+
data: Value.toText(r['data']) ?? null,
|
|
1805
|
+
feePayer: receipt.feePayer,
|
|
1806
|
+
logAddress: lower(r['address']),
|
|
1807
|
+
logIdx: Number(Value.toNumber(r['log_idx'])),
|
|
1808
|
+
selector: Value.toText(r['selector']) ?? null,
|
|
1809
|
+
source: 'q1',
|
|
1810
|
+
topic1: Value.toText(r['topic1']) ?? null,
|
|
1811
|
+
topic2: Value.toText(r['topic2']) ?? null,
|
|
1812
|
+
topic3: Value.toText(r['topic3']) ?? null,
|
|
1813
|
+
txHash: receipt.txHash,
|
|
1814
|
+
txIdx: receipt.txIdx,
|
|
1815
|
+
txSender: receipt.txSender,
|
|
1816
|
+
},
|
|
1817
|
+
];
|
|
1818
|
+
});
|
|
1819
|
+
return mergeAndSort(rows, [], []);
|
|
1786
1820
|
}
|
|
1787
1821
|
/** Q2/Q3: decoded `Transfer` events on one side of the address. */
|
|
1788
1822
|
async function queryTransfers(options) {
|
|
@@ -1791,18 +1825,48 @@ export function tidx(deps) {
|
|
|
1791
1825
|
? `"to" = '${address}' AND "from" != '${address}'`
|
|
1792
1826
|
: `"from" = '${address}' AND "to" != '${address}'`;
|
|
1793
1827
|
const keyset = cursor ? `AND block_num < ${cursor.blockNum}` : '';
|
|
1794
|
-
const
|
|
1795
|
-
chainId,
|
|
1796
|
-
query: `
|
|
1828
|
+
const query = (blockKey) => `
|
|
1797
1829
|
SELECT "from", "to", address, value, tx_hash, block_num, block_timestamp, log_idx, tx_idx
|
|
1798
1830
|
FROM Transfer
|
|
1799
1831
|
WHERE ${where} ${keyset}
|
|
1800
|
-
ORDER BY
|
|
1801
|
-
LIMIT ${limit * 4}
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1832
|
+
${blockKey ? `ORDER BY ${blockKey} DESC, tx_idx DESC` : ''}
|
|
1833
|
+
LIMIT ${blockKey ? limit * 4 : Schema.countCap}
|
|
1834
|
+
`;
|
|
1835
|
+
const result = await (async () => {
|
|
1836
|
+
try {
|
|
1837
|
+
return await tidxClient.fetch({
|
|
1838
|
+
chainId,
|
|
1839
|
+
query: query('block_num'),
|
|
1840
|
+
signatures: [transferSignature],
|
|
1841
|
+
});
|
|
1842
|
+
}
|
|
1843
|
+
catch (error) {
|
|
1844
|
+
if (!Tidx.isDeterministicError(error))
|
|
1845
|
+
throw error;
|
|
1846
|
+
try {
|
|
1847
|
+
// The expression blocks a mis-selected block-ordered top-N walk.
|
|
1848
|
+
return await tidxClient.fetch({
|
|
1849
|
+
chainId,
|
|
1850
|
+
query: query('block_num + 0'),
|
|
1851
|
+
signatures: [transferSignature],
|
|
1852
|
+
});
|
|
1853
|
+
}
|
|
1854
|
+
catch (fallbackError) {
|
|
1855
|
+
if (!Tidx.isDeterministicError(fallbackError))
|
|
1856
|
+
throw fallbackError;
|
|
1857
|
+
const result = await tidxClient.fetch({
|
|
1858
|
+
chainId,
|
|
1859
|
+
query: query(),
|
|
1860
|
+
signatures: [transferSignature],
|
|
1861
|
+
});
|
|
1862
|
+
// An unordered sample cannot safely produce an activity cursor.
|
|
1863
|
+
if (result.rows.length >= Schema.countCap)
|
|
1864
|
+
throw fallbackError;
|
|
1865
|
+
return result;
|
|
1866
|
+
}
|
|
1867
|
+
}
|
|
1868
|
+
})();
|
|
1869
|
+
const rows = result.rows.map((r) => ({
|
|
1806
1870
|
blockNum: Number(Value.toNumber(r['block_num'])),
|
|
1807
1871
|
blockTimestamp: Number(Value.toNumber(r['block_timestamp'])),
|
|
1808
1872
|
data: null,
|
|
@@ -1822,6 +1886,7 @@ export function tidx(deps) {
|
|
|
1822
1886
|
txIdx: Number(Value.toNumber(r['tx_idx'])),
|
|
1823
1887
|
txSender: null,
|
|
1824
1888
|
}));
|
|
1889
|
+
return mergeAndSort([], rows, []).slice(0, limit * 4);
|
|
1825
1890
|
}
|
|
1826
1891
|
return {
|
|
1827
1892
|
cursorForGroup(group) {
|