tapimo 0.14.0 → 0.15.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 +7 -4
- package/dist/ApiKey.js +1 -1
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +95 -14
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +360 -49
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +12457 -10365
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +300 -22
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +2 -1
- package/dist/Assets.js.map +1 -1
- package/dist/Handler.d.ts +0 -1
- package/dist/Handler.d.ts.map +1 -1
- package/dist/Handler.js +0 -1
- package/dist/Handler.js.map +1 -1
- package/dist/Scope.d.ts +13 -5
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +16 -5
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.js +1 -1
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +3057 -549
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +26 -5
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +159 -7
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +95 -43
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +1398 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
- package/dist/admin/apps/earn-vaults.js +463 -7
- package/dist/admin/apps/earn-vaults.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +267 -15
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/organizations.js +241 -25
- package/dist/admin/apps/organizations.js.map +1 -1
- package/dist/admin/apps/routes-support.d.ts +95 -0
- package/dist/admin/apps/routes-support.d.ts.map +1 -0
- package/dist/admin/apps/routes-support.js +151 -0
- package/dist/admin/apps/routes-support.js.map +1 -0
- package/dist/admin/apps/routes.d.ts +2764 -0
- package/dist/admin/apps/routes.d.ts.map +1 -0
- package/dist/admin/apps/routes.js +728 -0
- package/dist/admin/apps/routes.js.map +1 -0
- package/dist/admin/apps/subsidies.d.ts +501 -0
- package/dist/admin/apps/subsidies.d.ts.map +1 -0
- package/dist/admin/apps/subsidies.js +384 -0
- package/dist/admin/apps/subsidies.js.map +1 -0
- package/dist/admin/apps/verified-tokens.d.ts +88 -88
- package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.js +3 -3
- package/dist/admin/apps/verified-tokens.js.map +1 -1
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +129 -69
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +5 -2
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +31 -1
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +2 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +10 -1
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/analytics/tables/routesLifecycleIntervals.d.ts +72 -0
- package/dist/analytics/tables/routesLifecycleIntervals.d.ts.map +1 -0
- package/dist/analytics/tables/routesLifecycleIntervals.js +56 -0
- package/dist/analytics/tables/routesLifecycleIntervals.js.map +1 -0
- package/dist/apps/Zones.d.ts +21 -12526
- package/dist/apps/Zones.d.ts.map +1 -1
- package/dist/apps/Zones.js +37 -5
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +3971 -2595
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +76 -21
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +364 -34
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +495 -190
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +72 -0
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +37 -37
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +47 -21
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/earn.d.ts +1450 -337
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +1226 -144
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +5 -0
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +31 -19
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +125 -0
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +83 -27
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +507 -33
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +266 -156
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +47 -15
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +68 -11
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +2 -0
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +26 -14
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +28 -12
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +9 -7
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +30 -30
- package/dist/apps/data/routes/verified-tokens.d.ts +9 -9
- package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/verified-tokens.js +64 -20
- package/dist/apps/data/routes/verified-tokens.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +613 -176
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +291 -195
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts.map +1 -1
- package/dist/apps/data/routes/zones.js +20 -12
- package/dist/apps/data/routes/zones.js.map +1 -1
- package/dist/apps/docs/reference.js +2 -2
- package/dist/apps/docs/reference.js.map +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +1 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +3763 -3385
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +5 -14
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/Billing.d.ts +48 -7
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +204 -25
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +106 -4
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +43 -15
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +290 -4
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +274 -49
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/faucet.d.ts +6 -6
- package/dist/apps/management/routes/faucet.js +1 -1
- package/dist/apps/management/routes/faucet.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +77 -2
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +117 -13
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts +4 -4
- package/dist/apps/management/routes/me.d.ts.map +1 -1
- package/dist/apps/management/routes/me.js +6 -2
- package/dist/apps/management/routes/me.js.map +1 -1
- package/dist/apps/management/routes/members.d.ts +30 -30
- package/dist/apps/management/routes/orgs.d.ts +18 -2
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +52 -12
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +4 -4
- package/dist/apps/management/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js +6 -1
- package/dist/apps/management/routes/projects.js.map +1 -1
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +4 -1
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +24 -24
- package/dist/apps/management/routes/usage.js +21 -4
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.d.ts +2 -2
- package/dist/apps/management/routes/webhooks.d.ts +280 -214
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +58 -12
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/apps/mcp.d.ts +1 -1
- package/dist/apps/mcp.js +7 -7
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/App.js +35 -7
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts +2 -0
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +30 -1
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/apps/mpp/internal/Policy.d.ts +22 -4
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Policy.js +24 -6
- package/dist/apps/mpp/internal/Policy.js.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.d.ts +3 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.js +6 -3
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -1
- package/dist/apps/relay/App.d.ts +2 -0
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +134 -75
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +5 -3
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +209 -28
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/apps/{funding → routes}/Access.d.ts +4 -4
- package/dist/apps/routes/Access.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/Access.js +4 -4
- package/dist/apps/routes/Access.js.map +1 -0
- package/dist/apps/{funding → routes}/App.d.ts +418 -124
- package/dist/apps/{funding → routes}/App.d.ts.map +1 -1
- package/dist/apps/{funding → routes}/App.js +16 -16
- package/dist/apps/routes/App.js.map +1 -0
- package/dist/apps/routes/Inventory.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/Inventory.js +2 -2
- package/dist/apps/routes/Inventory.js.map +1 -0
- package/dist/apps/routes/index.d.ts +2 -0
- package/dist/apps/routes/index.d.ts.map +1 -0
- package/dist/apps/routes/index.js +2 -0
- package/dist/apps/routes/index.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/chains.d.ts +7 -7
- package/dist/apps/routes/routes/chains.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/chains.js +25 -25
- package/dist/apps/routes/routes/chains.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.d.ts +107 -43
- package/dist/apps/routes/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.js +497 -222
- package/dist/apps/routes/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/providers.d.ts +8 -8
- package/dist/apps/routes/routes/providers.d.ts.map +1 -0
- package/dist/apps/routes/routes/providers.js +57 -0
- package/dist/apps/routes/routes/providers.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/quotes.d.ts +19 -16
- package/dist/apps/routes/routes/quotes.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/quotes.js +55 -38
- package/dist/apps/routes/routes/quotes.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/transfers.d.ts +379 -74
- package/dist/apps/routes/routes/transfers.d.ts.map +1 -0
- package/dist/apps/routes/routes/transfers.js +1140 -0
- package/dist/apps/routes/routes/transfers.js.map +1 -0
- package/dist/cli/Cli.d.ts +30 -0
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/commands/admin.d.ts +36 -0
- package/dist/cli/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin.js +273 -0
- package/dist/cli/commands/admin.js.map +1 -1
- package/dist/cloudflare.d.ts +16 -14
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +26 -21
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +63 -21
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +1030 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +780 -133
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +575 -162
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/apiKeyAdmissionBootstraps.d.ts +4 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.d.ts.map +1 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.js +2 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.js.map +1 -0
- package/dist/db/tables/apiKeyAdmissions.d.ts +73 -0
- package/dist/db/tables/apiKeyAdmissions.d.ts.map +1 -0
- package/dist/db/tables/apiKeyAdmissions.js +142 -0
- package/dist/db/tables/apiKeyAdmissions.js.map +1 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.d.ts +4 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.d.ts.map +1 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.js +2 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.js.map +1 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts +20 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts.map +1 -0
- package/dist/db/tables/apiKeyOwnerTombstones.js +57 -0
- package/dist/db/tables/apiKeyOwnerTombstones.js.map +1 -0
- package/dist/db/tables/apiKeyRevocations.d.ts +21 -0
- package/dist/db/tables/apiKeyRevocations.d.ts.map +1 -0
- package/dist/db/tables/apiKeyRevocations.js +98 -0
- package/dist/db/tables/apiKeyRevocations.js.map +1 -0
- package/dist/db/tables/authAccounts.d.ts +47 -0
- package/dist/db/tables/authAccounts.d.ts.map +1 -0
- package/dist/db/tables/authAccounts.js +72 -0
- package/dist/db/tables/authAccounts.js.map +1 -0
- package/dist/db/tables/authSessions.d.ts +12 -0
- package/dist/db/tables/authSessions.d.ts.map +1 -0
- package/dist/db/tables/authSessions.js +2 -0
- package/dist/db/tables/authSessions.js.map +1 -0
- package/dist/db/tables/authVerifications.d.ts +12 -0
- package/dist/db/tables/authVerifications.d.ts.map +1 -0
- package/dist/db/tables/authVerifications.js +2 -0
- package/dist/db/tables/authVerifications.js.map +1 -0
- package/dist/db/tables/invitations.d.ts +17 -1
- package/dist/db/tables/invitations.d.ts.map +1 -1
- package/dist/db/tables/invitations.js +123 -43
- package/dist/db/tables/invitations.js.map +1 -1
- package/dist/db/tables/memberships.d.ts +8 -0
- package/dist/db/tables/memberships.d.ts.map +1 -1
- package/dist/db/tables/memberships.js +51 -2
- package/dist/db/tables/memberships.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +32 -10
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +110 -49
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +2 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +12 -3
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/rewardAccounts.d.ts +86 -0
- package/dist/db/tables/rewardAccounts.d.ts.map +1 -0
- package/dist/db/tables/rewardAccounts.js +88 -0
- package/dist/db/tables/rewardAccounts.js.map +1 -0
- package/dist/db/tables/rewardCampaignDistributors.d.ts +36 -0
- package/dist/db/tables/rewardCampaignDistributors.d.ts.map +1 -0
- package/dist/db/tables/rewardCampaignDistributors.js +30 -0
- package/dist/db/tables/rewardCampaignDistributors.js.map +1 -0
- package/dist/db/tables/rewardCampaigns.d.ts +171 -0
- package/dist/db/tables/rewardCampaigns.d.ts.map +1 -0
- package/dist/db/tables/rewardCampaigns.js +392 -0
- package/dist/db/tables/rewardCampaigns.js.map +1 -0
- package/dist/db/tables/rewardCredits.d.ts +53 -0
- package/dist/db/tables/rewardCredits.d.ts.map +1 -0
- package/dist/db/tables/rewardCredits.js +63 -0
- package/dist/db/tables/rewardCredits.js.map +1 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts +61 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts.map +1 -0
- package/dist/db/tables/rewardEligibilityAssociations.js +103 -0
- package/dist/db/tables/rewardEligibilityAssociations.js.map +1 -0
- package/dist/db/tables/rewardRuns.d.ts +188 -0
- package/dist/db/tables/rewardRuns.d.ts.map +1 -0
- package/dist/db/tables/rewardRuns.js +278 -0
- package/dist/db/tables/rewardRuns.js.map +1 -0
- package/dist/db/tables/rewardTransactionAttempts.d.ts +100 -0
- package/dist/db/tables/rewardTransactionAttempts.d.ts.map +1 -0
- package/dist/db/tables/rewardTransactionAttempts.js +163 -0
- package/dist/db/tables/rewardTransactionAttempts.js.map +1 -0
- package/dist/db/tables/routesCatalog.d.ts +58 -0
- package/dist/db/tables/routesCatalog.d.ts.map +1 -0
- package/dist/db/tables/{fundingCatalog.js → routesCatalog.js} +19 -19
- package/dist/db/tables/routesCatalog.js.map +1 -0
- package/dist/db/tables/routesDepositAddresses.d.ts +476 -0
- package/dist/db/tables/routesDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/routesDepositAddresses.js +587 -0
- package/dist/db/tables/routesDepositAddresses.js.map +1 -0
- package/dist/db/tables/{fundingDepositRequestObservations.d.ts → routesDepositRequestObservations.d.ts} +6 -6
- package/dist/db/tables/routesDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/{fundingDepositRequestObservations.js → routesDepositRequestObservations.js} +6 -6
- package/dist/db/tables/routesDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/{fundingDeposits.d.ts → routesDeposits.d.ts} +210 -22
- package/dist/db/tables/routesDeposits.d.ts.map +1 -0
- package/dist/db/tables/routesDeposits.js +576 -0
- package/dist/db/tables/routesDeposits.js.map +1 -0
- package/dist/db/tables/routesIdempotency.d.ts +166 -0
- package/dist/db/tables/routesIdempotency.d.ts.map +1 -0
- package/dist/db/tables/routesIdempotency.js +330 -0
- package/dist/db/tables/routesIdempotency.js.map +1 -0
- package/dist/db/tables/routesSubsidies.d.ts +27 -0
- package/dist/db/tables/routesSubsidies.d.ts.map +1 -0
- package/dist/db/tables/routesSubsidies.js +45 -0
- package/dist/db/tables/routesSubsidies.js.map +1 -0
- package/dist/db/tables/{fundingTransferEvents.d.ts → routesTransferEvents.d.ts} +3 -3
- package/dist/db/tables/routesTransferEvents.d.ts.map +1 -0
- package/dist/db/tables/{fundingTransferEvents.js → routesTransferEvents.js} +3 -3
- package/dist/db/tables/routesTransferEvents.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts +19 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.js +17 -0
- package/dist/db/tables/routesTransferSubsidies.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts +51 -0
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts.map +1 -0
- package/dist/db/tables/routesTransferSubsidyNonces.js +82 -0
- package/dist/db/tables/routesTransferSubsidyNonces.js.map +1 -0
- package/dist/db/tables/routesTransferTransactions.d.ts +77 -0
- package/dist/db/tables/routesTransferTransactions.d.ts.map +1 -0
- package/dist/db/tables/{fundingTransferTransactions.js → routesTransferTransactions.js} +31 -13
- package/dist/db/tables/routesTransferTransactions.js.map +1 -0
- package/dist/db/tables/routesTransfers.d.ts +319 -0
- package/dist/db/tables/routesTransfers.d.ts.map +1 -0
- package/dist/db/tables/routesTransfers.js +372 -0
- package/dist/db/tables/routesTransfers.js.map +1 -0
- package/dist/db/tables/sponsoredTransactions.d.ts +75 -20
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +124 -54
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/sponsorshipAttributions.d.ts +69 -0
- package/dist/db/tables/sponsorshipAttributions.d.ts.map +1 -0
- package/dist/db/tables/sponsorshipAttributions.js +77 -0
- package/dist/db/tables/sponsorshipAttributions.js.map +1 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.d.ts +22 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.d.ts.map +1 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.js +45 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.js.map +1 -0
- package/dist/db/tables/stripeCustomers.d.ts +11 -0
- package/dist/db/tables/stripeCustomers.d.ts.map +1 -1
- package/dist/db/tables/stripeCustomers.js +13 -0
- package/dist/db/tables/stripeCustomers.js.map +1 -1
- package/dist/db/tables/users.d.ts +17 -1
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +47 -2
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -1
- package/dist/db/tables/webhookQueueEvents.js +5 -1
- package/dist/db/tables/webhookQueueEvents.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +19 -11
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +45 -13
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/internal/executionError.d.ts +2 -2
- package/dist/handlers/internal/executionError.d.ts.map +1 -1
- package/dist/handlers/internal/executionError.js +1 -2
- package/dist/handlers/internal/executionError.js.map +1 -1
- package/dist/handlers/internal/multisig.d.ts +4 -232
- package/dist/handlers/internal/multisig.d.ts.map +1 -1
- package/dist/handlers/internal/multisig.js +11 -537
- package/dist/handlers/internal/multisig.js.map +1 -1
- package/dist/handlers/internal/sponsorship.d.ts +19 -8
- package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
- package/dist/handlers/internal/sponsorship.js +13 -9
- package/dist/handlers/internal/sponsorship.js.map +1 -1
- package/dist/handlers/relay.d.ts +9 -12
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +81 -85
- package/dist/handlers/relay.js.map +1 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -17
- package/dist/index.js.map +1 -1
- package/dist/internal/AssetResponse.d.ts +12 -0
- package/dist/internal/AssetResponse.d.ts.map +1 -0
- package/dist/internal/AssetResponse.js +21 -0
- package/dist/internal/AssetResponse.js.map +1 -0
- package/dist/internal/Auth.d.ts +48 -12
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +603 -175
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/BetterAuth.d.ts +1488 -0
- package/dist/internal/BetterAuth.d.ts.map +1 -0
- package/dist/internal/BetterAuth.js +253 -0
- package/dist/internal/BetterAuth.js.map +1 -0
- package/dist/internal/Cache.d.ts +2 -0
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +2 -0
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EarnRates.d.ts +26 -3
- package/dist/internal/EarnRates.d.ts.map +1 -1
- package/dist/internal/EarnRates.js +84 -19
- package/dist/internal/EarnRates.js.map +1 -1
- package/dist/internal/EarnSharePrices.d.ts +120 -0
- package/dist/internal/EarnSharePrices.d.ts.map +1 -0
- package/dist/internal/EarnSharePrices.js +179 -0
- package/dist/internal/EarnSharePrices.js.map +1 -0
- package/dist/internal/EarnVaults.d.ts +4 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -1
- package/dist/internal/EarnVaults.js +27 -10
- package/dist/internal/EarnVaults.js.map +1 -1
- package/dist/internal/Email.d.ts +37 -0
- package/dist/internal/Email.d.ts.map +1 -0
- package/dist/internal/Email.js +16 -0
- package/dist/internal/Email.js.map +1 -0
- package/dist/internal/Log.d.ts +32 -28
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +18 -11
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +3 -0
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +67 -8
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/Mpp.d.ts.map +1 -1
- package/dist/internal/Mpp.js +20 -25
- package/dist/internal/Mpp.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +26 -3
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +25 -10
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Provider.d.ts +1 -1
- package/dist/internal/Provider.d.ts.map +1 -1
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +13 -1
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Store.d.ts +16 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +59 -8
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +9 -2
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +78 -11
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Timing.d.ts +26 -0
- package/dist/internal/Timing.d.ts.map +1 -1
- package/dist/internal/Timing.js +63 -5
- package/dist/internal/Timing.js.map +1 -1
- package/dist/internal/VercelOidc.d.ts +94 -0
- package/dist/internal/VercelOidc.d.ts.map +1 -0
- package/dist/internal/VercelOidc.js +128 -0
- package/dist/internal/VercelOidc.js.map +1 -0
- package/dist/internal/VerifiedTokens.d.ts +2 -8
- package/dist/internal/VerifiedTokens.d.ts.map +1 -1
- package/dist/internal/VerifiedTokens.js +24 -24
- package/dist/internal/VerifiedTokens.js.map +1 -1
- package/dist/internal/Viem.d.ts +30 -2067
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +167 -17
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +12 -4
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +9 -3
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/ZoneRpc.d.ts +7 -0
- package/dist/internal/ZoneRpc.d.ts.map +1 -0
- package/dist/internal/ZoneRpc.js +49 -0
- package/dist/internal/ZoneRpc.js.map +1 -0
- package/dist/internal/index.d.ts +3 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +3 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/rewards/Audit.d.ts +88 -0
- package/dist/internal/rewards/Audit.d.ts.map +1 -0
- package/dist/internal/rewards/Audit.js +134 -0
- package/dist/internal/rewards/Audit.js.map +1 -0
- package/dist/internal/rewards/Campaigns.d.ts +572 -0
- package/dist/internal/rewards/Campaigns.d.ts.map +1 -0
- package/dist/internal/rewards/Campaigns.js +531 -0
- package/dist/internal/rewards/Campaigns.js.map +1 -0
- package/dist/internal/rewards/Credits.d.ts +76 -0
- package/dist/internal/rewards/Credits.d.ts.map +1 -0
- package/dist/internal/rewards/Credits.js +95 -0
- package/dist/internal/rewards/Credits.js.map +1 -0
- package/dist/internal/rewards/Events.d.ts +100 -0
- package/dist/internal/rewards/Events.d.ts.map +1 -0
- package/dist/internal/rewards/Events.js +340 -0
- package/dist/internal/rewards/Events.js.map +1 -0
- package/dist/internal/rewards/Projection.d.ts +237 -0
- package/dist/internal/rewards/Projection.d.ts.map +1 -0
- package/dist/internal/rewards/Projection.js +616 -0
- package/dist/internal/rewards/Projection.js.map +1 -0
- package/dist/internal/rewards/Rates.d.ts +44 -0
- package/dist/internal/rewards/Rates.d.ts.map +1 -0
- package/dist/internal/rewards/Rates.js +60 -0
- package/dist/internal/rewards/Rates.js.map +1 -0
- package/dist/internal/rewards/Read.d.ts +158 -0
- package/dist/internal/rewards/Read.d.ts.map +1 -0
- package/dist/internal/rewards/Read.js +292 -0
- package/dist/internal/rewards/Read.js.map +1 -0
- package/dist/internal/rewards/Runner.d.ts +164 -0
- package/dist/internal/rewards/Runner.d.ts.map +1 -0
- package/dist/internal/rewards/Runner.js +1778 -0
- package/dist/internal/rewards/Runner.js.map +1 -0
- package/dist/internal/rewards/Signer.d.ts +224 -0
- package/dist/internal/rewards/Signer.d.ts.map +1 -0
- package/dist/internal/rewards/Signer.js +135 -0
- package/dist/internal/rewards/Signer.js.map +1 -0
- package/dist/internal/rewards/index.d.ts +15 -0
- package/dist/internal/rewards/index.d.ts.map +1 -0
- package/dist/internal/rewards/index.js +15 -0
- package/dist/internal/rewards/index.js.map +1 -0
- package/dist/internal/{funding → routes}/Action.d.ts +12 -1
- package/dist/internal/routes/Action.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Action.js +17 -9
- package/dist/internal/routes/Action.js.map +1 -0
- package/dist/internal/{funding → routes}/Catalog.d.ts +20 -20
- package/dist/internal/routes/Catalog.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Catalog.js +29 -29
- package/dist/internal/routes/Catalog.js.map +1 -0
- package/dist/internal/{funding → routes}/Chain.d.ts +10 -10
- package/dist/internal/routes/Chain.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Chain.js +3 -3
- package/dist/internal/routes/Chain.js.map +1 -0
- package/dist/internal/{funding → routes}/Deposit.d.ts +45 -23
- package/dist/internal/routes/Deposit.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Deposit.js +60 -27
- package/dist/internal/routes/Deposit.js.map +1 -0
- package/dist/internal/{funding → routes}/DepositAddress.d.ts +56 -27
- package/dist/internal/routes/DepositAddress.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/DepositAddress.js +95 -33
- package/dist/internal/routes/DepositAddress.js.map +1 -0
- package/dist/internal/{funding → routes}/DepositWebhook.d.ts +4 -4
- package/dist/internal/routes/DepositWebhook.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/DepositWebhook.js +4 -4
- package/dist/internal/routes/DepositWebhook.js.map +1 -0
- package/dist/internal/routes/Economics.d.ts +25 -0
- package/dist/internal/routes/Economics.d.ts.map +1 -0
- package/dist/internal/routes/Economics.js +28 -0
- package/dist/internal/routes/Economics.js.map +1 -0
- package/dist/internal/{funding → routes}/Evidence.d.ts +3 -3
- package/dist/internal/routes/Evidence.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Evidence.js +7 -7
- package/dist/internal/routes/Evidence.js.map +1 -0
- package/dist/internal/routes/Observability.d.ts +154 -0
- package/dist/internal/routes/Observability.d.ts.map +1 -0
- package/dist/internal/routes/Observability.js +389 -0
- package/dist/internal/routes/Observability.js.map +1 -0
- package/dist/internal/{funding → routes}/Provider.d.ts +311 -105
- package/dist/internal/routes/Provider.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Provider.js +229 -98
- package/dist/internal/routes/Provider.js.map +1 -0
- package/dist/internal/{funding → routes}/Reconciliation.d.ts +11 -6
- package/dist/internal/routes/Reconciliation.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Reconciliation.js +408 -158
- package/dist/internal/routes/Reconciliation.js.map +1 -0
- package/dist/internal/routes/Route.d.ts +21 -0
- package/dist/internal/routes/Route.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Route.js +1 -1
- package/dist/internal/routes/Route.js.map +1 -0
- package/dist/internal/{funding → routes}/SourceObservation.d.ts +6 -6
- package/dist/internal/routes/SourceObservation.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/SourceObservation.js +8 -8
- package/dist/internal/routes/SourceObservation.js.map +1 -0
- package/dist/internal/{funding → routes}/Subsidy.d.ts +48 -3
- package/dist/internal/routes/Subsidy.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Subsidy.js +43 -3
- package/dist/internal/routes/Subsidy.js.map +1 -0
- package/dist/internal/{funding → routes}/Token.d.ts +4 -4
- package/dist/internal/routes/Token.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Token.js +3 -3
- package/dist/internal/routes/Token.js.map +1 -0
- package/dist/internal/{funding → routes}/Transfer.d.ts +241 -46
- package/dist/internal/routes/Transfer.d.ts.map +1 -0
- package/dist/internal/routes/Transfer.js +728 -0
- package/dist/internal/routes/Transfer.js.map +1 -0
- package/dist/internal/{funding → routes}/TransferReconciliation.d.ts +13 -10
- package/dist/internal/routes/TransferReconciliation.d.ts.map +1 -0
- package/dist/internal/routes/TransferReconciliation.js +422 -0
- package/dist/internal/routes/TransferReconciliation.js.map +1 -0
- package/dist/internal/routes/TransferSubsidy.d.ts +201 -0
- package/dist/internal/routes/TransferSubsidy.d.ts.map +1 -0
- package/dist/internal/routes/TransferSubsidy.js +256 -0
- package/dist/internal/routes/TransferSubsidy.js.map +1 -0
- package/dist/internal/{funding → routes}/TransferWebhook.d.ts +5 -5
- package/dist/internal/routes/TransferWebhook.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/TransferWebhook.js +3 -3
- package/dist/internal/routes/TransferWebhook.js.map +1 -0
- package/dist/internal/{funding → routes}/index.d.ts +2 -0
- package/dist/internal/routes/index.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/index.js +2 -0
- package/dist/internal/routes/index.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/across.d.ts +4 -4
- package/dist/internal/routes/providers/across.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/across.js +13 -13
- package/dist/internal/routes/providers/across.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/relay.d.ts +21 -12
- package/dist/internal/routes/providers/relay.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/relay.js +194 -110
- package/dist/internal/routes/providers/relay.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/rhino.d.ts +4 -4
- package/dist/internal/routes/providers/rhino.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/rhino.js +10 -10
- package/dist/internal/routes/providers/rhino.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/squid.d.ts +4 -4
- package/dist/internal/routes/providers/squid.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/squid.js +14 -14
- package/dist/internal/routes/providers/squid.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/stargate.d.ts +46 -18
- package/dist/internal/routes/providers/stargate.d.ts.map +1 -0
- package/dist/internal/routes/providers/stargate.js +898 -0
- package/dist/internal/routes/providers/stargate.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/symbiosis.d.ts +4 -4
- package/dist/internal/routes/providers/symbiosis.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/symbiosis.js +30 -20
- package/dist/internal/routes/providers/symbiosis.js.map +1 -0
- package/dist/internal/webhookDestinations/slack.js +12 -12
- package/dist/internal/webhookDestinations/slack.js.map +1 -1
- package/dist/providers/index.d.ts +12 -12
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -12
- package/dist/providers/index.js.map +1 -1
- package/dist/server.d.ts +19 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +19 -0
- package/dist/server.js.map +1 -0
- package/package.json +15 -4
- package/src/ApiKey.ts +1 -1
- package/src/ApiKeys.test.ts +1033 -3
- package/src/ApiKeys.ts +489 -48
- package/src/App.test-d.ts +1 -1
- package/src/App.test.ts +216 -25
- package/src/App.ts +334 -31
- package/src/Assets.test.ts +2 -2
- package/src/Assets.ts +3 -1
- package/src/Auth.test-d.ts +1 -1
- package/src/Client.test-d.ts +539 -110
- package/src/Handler.ts +0 -1
- package/src/OpenApi.contract.test.ts +195 -0
- package/src/Scope.ts +17 -5
- package/src/Webhooks.ts +1 -1
- package/src/admin/App.test.ts +30 -2
- package/src/admin/App.ts +42 -6
- package/src/admin/apps/api-keys.test.ts +267 -5
- package/src/admin/apps/api-keys.ts +100 -50
- package/src/admin/apps/earn-vaults.test.ts +158 -0
- package/src/admin/apps/earn-vaults.ts +679 -6
- package/src/admin/apps/organizations.test.ts +306 -17
- package/src/admin/apps/organizations.ts +299 -24
- package/src/admin/apps/routes-support.test.ts +200 -0
- package/src/admin/apps/routes-support.ts +201 -0
- package/src/admin/apps/routes.test.ts +450 -0
- package/src/admin/apps/routes.ts +896 -0
- package/src/admin/apps/scopes.test.ts +15 -5
- package/src/admin/apps/subsidies.test.ts +306 -0
- package/src/admin/apps/subsidies.ts +457 -0
- package/src/admin/apps/verified-tokens.test.ts +8 -3
- package/src/admin/apps/verified-tokens.ts +3 -3
- package/src/admin/ui/plugin.ts +1 -2
- package/src/admin/ui/src/components/RewardCampaignForm.tsx +1009 -0
- package/src/admin/ui/src/lib/config.ts +11 -2
- package/src/admin/ui/src/lib/earn-vaults.ts +2 -2
- package/src/admin/ui/src/lib/organizations.test.ts +83 -50
- package/src/admin/ui/src/lib/organizations.ts +106 -25
- package/src/admin/ui/src/lib/query-client.ts +1 -1
- package/src/admin/ui/src/lib/reward-campaigns.ts +136 -0
- package/src/admin/ui/src/lib/routes.test.ts +88 -0
- package/src/admin/ui/src/lib/routes.ts +304 -0
- package/src/admin/ui/src/lib/subsidies.ts +75 -0
- package/src/admin/ui/src/routeTree.gen.ts +63 -0
- package/src/admin/ui/src/routes/__root.tsx +12 -1
- package/src/admin/ui/src/routes/api-keys.tsx +196 -84
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +105 -70
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +239 -23
- package/src/admin/ui/src/routes/routes.tsx +1615 -0
- package/src/admin/ui/src/routes/routes_.support.tsx +248 -0
- package/src/admin/ui/src/routes/subsidies.tsx +799 -0
- package/src/admin/ui.generated.ts +144 -69
- package/src/analytics/Analytics.test.ts +108 -18
- package/src/analytics/Analytics.ts +38 -6
- package/src/analytics/tables/requestEvents.test.ts +100 -0
- package/src/analytics/tables/requestEvents.ts +10 -1
- package/src/analytics/tables/routesLifecycleIntervals.ts +140 -0
- package/src/apps/Zones.test.ts +15 -0
- package/src/apps/Zones.ts +52 -5
- package/src/apps/composition.test.ts +68 -60
- package/src/apps/data/App.test.ts +154 -2
- package/src/apps/data/App.ts +88 -28
- package/src/apps/data/routes/activities.test.ts +419 -7
- package/src/apps/data/routes/activities.ts +683 -216
- package/src/apps/data/routes/balances.test.ts +2 -2
- package/src/apps/data/routes/blocks.test.ts +46 -1
- package/src/apps/data/routes/coingecko.test.ts +419 -1
- package/src/apps/data/routes/coingecko.ts +309 -253
- package/src/apps/data/routes/earn.discovery.test.ts +274 -0
- package/src/apps/data/routes/earn.test.ts +1294 -17
- package/src/apps/data/routes/earn.ts +1838 -321
- package/src/apps/data/routes/exchanges.test.ts +12 -15
- package/src/apps/data/routes/fee-amm.test.ts +224 -0
- package/src/apps/data/routes/fee-amm.ts +191 -160
- package/src/apps/data/routes/indexer.test.ts +389 -0
- package/src/apps/data/routes/indexer.ts +165 -69
- package/src/apps/data/routes/receipts.test.ts +1 -1
- package/src/apps/data/routes/rpc.test.ts +352 -8
- package/src/apps/data/routes/rpc.ts +407 -219
- package/src/apps/data/routes/rpc.zone.test.ts +340 -0
- package/src/apps/data/routes/tokenlist.test.ts +285 -0
- package/src/apps/data/routes/tokenlist.ts +173 -88
- package/src/apps/data/routes/tokens.test.ts +93 -3
- package/src/apps/data/routes/tokens.ts +39 -23
- package/src/apps/data/routes/transactions.test.ts +1 -1
- package/src/apps/data/routes/transfers.test.ts +56 -24
- package/src/apps/data/routes/transfers.ts +19 -8
- package/src/apps/data/routes/valuation.test.ts +1 -1
- package/src/apps/data/routes/verified-tokens.test.ts +345 -0
- package/src/apps/data/routes/verified-tokens.ts +99 -29
- package/src/apps/data/routes/webhooks.test.ts +645 -83
- package/src/apps/data/routes/webhooks.ts +1089 -857
- package/src/apps/data/routes/zones.test.ts +148 -71
- package/src/apps/data/routes/zones.ts +71 -55
- package/src/apps/docs/reference.ts +2 -2
- package/src/apps/index.ts +1 -1
- package/src/apps/management/App.ts +9 -51
- package/src/apps/management/Billing.test.ts +375 -14
- package/src/apps/management/Billing.ts +265 -29
- package/src/apps/management/routes/api-keys.test.ts +269 -7
- package/src/apps/management/routes/api-keys.ts +61 -20
- package/src/apps/management/routes/billing.test.ts +477 -15
- package/src/apps/management/routes/billing.ts +377 -50
- package/src/apps/management/routes/faucet.test.ts +1 -1
- package/src/apps/management/routes/faucet.ts +1 -1
- package/src/apps/management/routes/invitations.test.ts +270 -3
- package/src/apps/management/routes/invitations.ts +185 -15
- package/src/apps/management/routes/invoicePreview.test.ts +549 -0
- package/src/apps/management/routes/me.test.ts +246 -5
- package/src/apps/management/routes/me.ts +7 -2
- package/src/apps/management/routes/members.test.ts +108 -0
- package/src/apps/management/routes/orgs.test.ts +191 -3
- package/src/apps/management/routes/orgs.ts +58 -11
- package/src/apps/management/routes/projects.test.ts +33 -3
- package/src/apps/management/routes/projects.ts +6 -1
- package/src/apps/management/routes/scopes.test.ts +30 -2
- package/src/apps/management/routes/scopes.ts +4 -1
- package/src/apps/management/routes/usage.test.ts +32 -0
- package/src/apps/management/routes/usage.ts +22 -4
- package/src/apps/management/routes/webhooks.test.ts +49 -26
- package/src/apps/management/routes/webhooks.ts +78 -22
- package/src/apps/mcp.test.ts +6 -6
- package/src/apps/mcp.ts +7 -7
- package/src/apps/mpp/App.ts +37 -7
- package/src/apps/mpp/Mpp.test.ts +49 -8
- package/src/apps/mpp/Mpp.zone.test.ts +219 -0
- package/src/apps/mpp/internal/Adapter.ts +34 -0
- package/src/apps/mpp/internal/Policy.test.ts +86 -31
- package/src/apps/mpp/internal/Policy.ts +49 -7
- package/src/apps/mpp/internal/Sponsorship.test.ts +207 -0
- package/src/apps/mpp/internal/Sponsorship.ts +9 -3
- package/src/apps/relay/App.test.ts +839 -64
- package/src/apps/relay/App.ts +148 -81
- package/src/apps/relay/App.zone-billing.test.ts +257 -0
- package/src/apps/relay/Sponsorships.test.ts +67 -4
- package/src/apps/relay/Sponsorships.ts +233 -32
- package/src/apps/relay/Sponsorships.zone.test.ts +102 -0
- package/src/apps/{funding → routes}/Access.ts +6 -6
- package/src/apps/routes/App.test.ts +165 -0
- package/src/apps/routes/App.ts +96 -0
- package/src/apps/{funding → routes}/Inventory.ts +2 -2
- package/src/apps/routes/index.ts +1 -0
- package/src/apps/{funding → routes}/routes/chains.test.ts +66 -66
- package/src/apps/{funding → routes}/routes/chains.ts +23 -23
- package/src/apps/{funding → routes}/routes/deposit-addresses.test.ts +1358 -458
- package/src/apps/{funding → routes}/routes/deposit-addresses.ts +566 -246
- package/src/apps/{funding → routes}/routes/providers.test.ts +27 -33
- package/src/apps/{funding → routes}/routes/providers.ts +23 -23
- package/src/apps/{funding → routes}/routes/quotes.test.ts +298 -41
- package/src/apps/{funding → routes}/routes/quotes.ts +57 -40
- package/src/apps/{funding → routes}/routes/transfers.test.ts +1100 -353
- package/src/apps/routes/routes/transfers.ts +1332 -0
- package/src/cli/Cli.test.ts +1 -1
- package/src/cli/commands/admin.test.ts +748 -1
- package/src/cli/commands/admin.ts +278 -0
- package/src/cloudflare.ts +52 -47
- package/src/db/Db.test.ts +245 -2
- package/src/db/Db.ts +1476 -34
- package/src/db/Schema.ts +729 -228
- package/src/db/tables/apiKeyAdmissionBootstraps.ts +4 -0
- package/src/db/tables/apiKeyAdmissions.ts +218 -0
- package/src/db/tables/apiKeyOwnerAdmissions.ts +4 -0
- package/src/db/tables/apiKeyOwnerTombstones.ts +81 -0
- package/src/db/tables/apiKeyRevocations.test.ts +74 -0
- package/src/db/tables/apiKeyRevocations.ts +121 -0
- package/src/db/tables/authAccounts.ts +105 -0
- package/src/db/tables/authSessions.ts +13 -0
- package/src/db/tables/authVerifications.ts +13 -0
- package/src/db/tables/invitations.ts +142 -45
- package/src/db/tables/memberships.ts +79 -3
- package/src/db/tables/organizations.test.ts +690 -13
- package/src/db/tables/organizations.ts +139 -55
- package/src/db/tables/projects.test.ts +16 -0
- package/src/db/tables/projects.ts +13 -3
- package/src/db/tables/requestUsage.ts +4 -1
- package/src/db/tables/rewardAccounts.ts +178 -0
- package/src/db/tables/rewardCampaignDistributors.ts +68 -0
- package/src/db/tables/rewardCampaigns.test.ts +1388 -0
- package/src/db/tables/rewardCampaigns.ts +647 -0
- package/src/db/tables/rewardCredits.ts +110 -0
- package/src/db/tables/rewardEligibilityAssociations.test.ts +271 -0
- package/src/db/tables/rewardEligibilityAssociations.ts +184 -0
- package/src/db/tables/rewardRuns.ts +514 -0
- package/src/db/tables/rewardTransactionAttempts.ts +272 -0
- package/src/db/tables/routesCatalog.test.ts +185 -0
- package/src/db/tables/routesCatalog.ts +163 -0
- package/src/db/tables/routesDepositAddresses.test.ts +1048 -0
- package/src/db/tables/routesDepositAddresses.ts +1008 -0
- package/src/db/tables/{fundingDepositRequestObservations.test.ts → routesDepositRequestObservations.test.ts} +13 -14
- package/src/db/tables/{fundingDepositRequestObservations.ts → routesDepositRequestObservations.ts} +10 -10
- package/src/db/tables/{fundingDeposits.test.ts → routesDeposits.test.ts} +316 -46
- package/src/db/tables/routesDeposits.ts +1062 -0
- package/src/db/tables/routesIdempotency.test.ts +796 -0
- package/src/db/tables/routesIdempotency.ts +496 -0
- package/src/db/tables/routesSubsidies.test.ts +120 -0
- package/src/db/tables/routesSubsidies.ts +71 -0
- package/src/db/tables/{fundingTransferEvents.ts → routesTransferEvents.ts} +4 -4
- package/src/db/tables/routesTransferSubsidies.ts +38 -0
- package/src/db/tables/routesTransferSubsidyNonces.ts +124 -0
- package/src/db/tables/routesTransferTransactions.test.ts +195 -0
- package/src/db/tables/{fundingTransferTransactions.ts → routesTransferTransactions.ts} +63 -18
- package/src/db/tables/routesTransfers.test.ts +338 -0
- package/src/db/tables/routesTransfers.ts +662 -0
- package/src/db/tables/sponsoredTransactions.test.ts +269 -45
- package/src/db/tables/sponsoredTransactions.ts +225 -65
- package/src/db/tables/sponsorshipAttributions.test.ts +160 -0
- package/src/db/tables/sponsorshipAttributions.ts +168 -0
- package/src/db/tables/sponsorshipReconciliationCursors.test.ts +115 -0
- package/src/db/tables/sponsorshipReconciliationCursors.ts +67 -0
- package/src/db/tables/stripeCustomers.test.ts +85 -0
- package/src/db/tables/stripeCustomers.ts +24 -0
- package/src/db/tables/users.test.ts +129 -0
- package/src/db/tables/users.ts +49 -3
- package/src/db/tables/webhookQueueEvents.ts +8 -1
- package/src/db/tables/webhookSubscriptions.ts +95 -20
- package/src/handlers/internal/executionError.ts +3 -4
- package/src/handlers/internal/multisig.ts +13 -816
- package/src/handlers/internal/sponsorship.ts +26 -10
- package/src/handlers/relay.test-d.ts +9 -1
- package/src/handlers/relay.test.ts +823 -3
- package/src/handlers/relay.ts +127 -107
- package/src/index.test-d.ts +7 -0
- package/src/index.ts +0 -17
- package/src/internal/AssetResponse.ts +26 -0
- package/src/internal/Auth.test.ts +1564 -9
- package/src/internal/Auth.ts +833 -239
- package/src/internal/BetterAuth.test.ts +242 -0
- package/src/internal/BetterAuth.ts +349 -0
- package/src/internal/Cache.ts +2 -0
- package/src/internal/EarnRates.test.ts +17 -0
- package/src/internal/EarnRates.ts +124 -31
- package/src/internal/EarnSharePrices.test.ts +182 -0
- package/src/internal/EarnSharePrices.ts +313 -0
- package/src/internal/EarnVaults.test.ts +21 -0
- package/src/internal/EarnVaults.ts +33 -11
- package/src/internal/Email.ts +54 -0
- package/src/internal/Idempotency.test.ts +2 -2
- package/src/internal/Log.test-d.ts +8 -7
- package/src/internal/Log.test.ts +114 -16
- package/src/internal/Log.ts +53 -40
- package/src/internal/MetricSink.test.ts +313 -26
- package/src/internal/MetricSink.ts +73 -8
- package/src/internal/Mpp.test.ts +31 -0
- package/src/internal/Mpp.ts +21 -24
- package/src/internal/OpenApi.ts +45 -12
- package/src/internal/Provider.test.ts +1 -1
- package/src/internal/Provider.ts +1 -1
- package/src/internal/RateLimit.test.ts +21 -3
- package/src/internal/RateLimit.ts +12 -1
- package/src/internal/Store.test-d.ts +1 -1
- package/src/internal/Store.test.ts +151 -8
- package/src/internal/Store.ts +76 -9
- package/src/internal/Tidx.test.ts +59 -8
- package/src/internal/Tidx.ts +86 -14
- package/src/internal/Timing.test.ts +77 -0
- package/src/internal/Timing.ts +83 -6
- package/src/internal/VercelOidc.test.ts +188 -0
- package/src/internal/VercelOidc.ts +193 -0
- package/src/internal/VerifiedTokens.test.ts +60 -6
- package/src/internal/VerifiedTokens.ts +21 -24
- package/src/internal/Viem.batch.test.ts +80 -0
- package/src/internal/Viem.test.ts +201 -2
- package/src/internal/Viem.ts +221 -25
- package/src/internal/Webhooks.test.ts +85 -6
- package/src/internal/Webhooks.ts +22 -4
- package/src/internal/ZoneRpc.ts +50 -0
- package/src/internal/exchange/Provider.test.ts +2 -2
- package/src/internal/index.test.ts +3 -1
- package/src/internal/index.ts +3 -1
- package/src/internal/rewards/Audit.ts +231 -0
- package/src/internal/rewards/Campaigns.test.ts +1234 -0
- package/src/internal/rewards/Campaigns.ts +1205 -0
- package/src/internal/rewards/Credits.ts +165 -0
- package/src/internal/rewards/Events.local.test.ts +113 -0
- package/src/internal/rewards/Events.test.ts +152 -0
- package/src/internal/rewards/Events.ts +468 -0
- package/src/internal/rewards/Projection.test.ts +681 -0
- package/src/internal/rewards/Projection.ts +987 -0
- package/src/internal/rewards/Rates.test.ts +171 -0
- package/src/internal/rewards/Rates.ts +110 -0
- package/src/internal/rewards/Read.test.ts +501 -0
- package/src/internal/rewards/Read.ts +476 -0
- package/src/internal/rewards/Runner.checkpoint.test.ts +80 -0
- package/src/internal/rewards/Runner.states.test.ts +188 -0
- package/src/internal/rewards/Runner.test.ts +90 -0
- package/src/internal/rewards/Runner.ts +2229 -0
- package/src/internal/rewards/Signer.test.ts +79 -0
- package/src/internal/rewards/Signer.ts +180 -0
- package/src/internal/rewards/index.ts +14 -0
- package/src/internal/{funding → routes}/Action.test.ts +63 -14
- package/src/internal/{funding → routes}/Action.ts +35 -8
- package/src/internal/{funding → routes}/Catalog.test.ts +3 -3
- package/src/internal/{funding → routes}/Catalog.ts +39 -39
- package/src/internal/{funding → routes}/Chain.test.ts +1 -1
- package/src/internal/{funding → routes}/Chain.ts +11 -11
- package/src/internal/{funding → routes}/Deposit.test.ts +1 -1
- package/src/internal/{funding → routes}/Deposit.ts +93 -45
- package/src/internal/{funding → routes}/DepositAddress.test.ts +11 -3
- package/src/internal/{funding → routes}/DepositAddress.ts +132 -53
- package/src/internal/{funding → routes}/DepositWebhook.test.ts +61 -18
- package/src/internal/{funding → routes}/DepositWebhook.ts +9 -9
- package/src/internal/routes/Economics.test.ts +42 -0
- package/src/internal/routes/Economics.ts +47 -0
- package/src/internal/{funding → routes}/Evidence.test.ts +6 -6
- package/src/internal/{funding → routes}/Evidence.ts +9 -9
- package/src/internal/routes/Observability.test.ts +636 -0
- package/src/internal/routes/Observability.ts +668 -0
- package/src/internal/{funding → routes}/Provider.test.ts +489 -153
- package/src/internal/{funding → routes}/Provider.ts +489 -186
- package/src/internal/{funding → routes}/Reconciliation.local.test.ts +84 -12
- package/src/internal/{funding → routes}/Reconciliation.test.ts +1213 -279
- package/src/internal/{funding → routes}/Reconciliation.ts +501 -203
- package/src/internal/routes/Reconciliation.unattributed.test.ts +250 -0
- package/src/internal/{funding → routes}/Route.ts +7 -7
- package/src/internal/{funding → routes}/SourceObservation.test.ts +13 -14
- package/src/internal/{funding → routes}/SourceObservation.ts +13 -13
- package/src/internal/{funding → routes}/Subsidy.local.test.ts +7 -7
- package/src/internal/routes/Subsidy.test.ts +169 -0
- package/src/internal/{funding → routes}/Subsidy.ts +86 -6
- package/src/internal/{funding → routes}/Token.test.ts +1 -1
- package/src/internal/{funding → routes}/Token.ts +5 -5
- package/src/internal/routes/Transfer.test.ts +1199 -0
- package/src/internal/routes/Transfer.ts +1206 -0
- package/src/internal/routes/TransferReconciliation.test.ts +731 -0
- package/src/internal/routes/TransferReconciliation.ts +527 -0
- package/src/internal/routes/TransferSubsidy.test.ts +172 -0
- package/src/internal/routes/TransferSubsidy.ts +447 -0
- package/src/internal/{funding → routes}/TransferWebhook.test.ts +13 -13
- package/src/internal/{funding → routes}/TransferWebhook.ts +7 -7
- package/src/internal/{funding → routes}/index.test.ts +5 -3
- package/src/internal/{funding → routes}/index.ts +2 -0
- package/src/internal/{funding → routes}/providers/across.ts +16 -16
- package/src/internal/{funding → routes}/providers/index.test.ts +157 -44
- package/src/internal/{funding → routes}/providers/relay.test.ts +165 -32
- package/src/internal/{funding → routes}/providers/relay.ts +228 -121
- package/src/internal/{funding → routes}/providers/rhino.ts +16 -16
- package/src/internal/{funding → routes}/providers/squid.ts +17 -17
- package/src/internal/routes/providers/stargate.test.ts +728 -0
- package/src/internal/routes/providers/stargate.ts +1276 -0
- package/src/internal/{funding → routes}/providers/symbiosis.ts +64 -24
- package/src/internal/webhookDestinations/slack.ts +10 -10
- package/src/providers/index.ts +13 -13
- package/src/server.ts +18 -0
- package/dist/apps/funding/Access.d.ts.map +0 -1
- package/dist/apps/funding/Access.js.map +0 -1
- package/dist/apps/funding/App.js.map +0 -1
- package/dist/apps/funding/Inventory.d.ts.map +0 -1
- package/dist/apps/funding/Inventory.js.map +0 -1
- package/dist/apps/funding/ProviderAttempts.d.ts +0 -5
- package/dist/apps/funding/ProviderAttempts.d.ts.map +0 -1
- package/dist/apps/funding/ProviderAttempts.js +0 -24
- package/dist/apps/funding/ProviderAttempts.js.map +0 -1
- package/dist/apps/funding/index.d.ts +0 -2
- package/dist/apps/funding/index.d.ts.map +0 -1
- package/dist/apps/funding/index.js +0 -2
- package/dist/apps/funding/index.js.map +0 -1
- package/dist/apps/funding/routes/chains.d.ts.map +0 -1
- package/dist/apps/funding/routes/chains.js.map +0 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +0 -1
- package/dist/apps/funding/routes/deposit-addresses.js.map +0 -1
- package/dist/apps/funding/routes/providers.d.ts.map +0 -1
- package/dist/apps/funding/routes/providers.js +0 -57
- package/dist/apps/funding/routes/providers.js.map +0 -1
- package/dist/apps/funding/routes/quotes.d.ts.map +0 -1
- package/dist/apps/funding/routes/quotes.js.map +0 -1
- package/dist/apps/funding/routes/transfers.d.ts.map +0 -1
- package/dist/apps/funding/routes/transfers.js +0 -828
- package/dist/apps/funding/routes/transfers.js.map +0 -1
- package/dist/db/tables/fundingCatalog.d.ts +0 -58
- package/dist/db/tables/fundingCatalog.d.ts.map +0 -1
- package/dist/db/tables/fundingCatalog.js.map +0 -1
- package/dist/db/tables/fundingDepositAddresses.d.ts +0 -192
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +0 -1
- package/dist/db/tables/fundingDepositAddresses.js +0 -235
- package/dist/db/tables/fundingDepositAddresses.js.map +0 -1
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +0 -1
- package/dist/db/tables/fundingDepositRequestObservations.js.map +0 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +0 -1
- package/dist/db/tables/fundingDeposits.js +0 -295
- package/dist/db/tables/fundingDeposits.js.map +0 -1
- package/dist/db/tables/fundingIdempotency.d.ts +0 -91
- package/dist/db/tables/fundingIdempotency.d.ts.map +0 -1
- package/dist/db/tables/fundingIdempotency.js +0 -103
- package/dist/db/tables/fundingIdempotency.js.map +0 -1
- package/dist/db/tables/fundingTransferEvents.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferEvents.js.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.d.ts +0 -53
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.js.map +0 -1
- package/dist/db/tables/fundingTransfers.d.ts +0 -99
- package/dist/db/tables/fundingTransfers.d.ts.map +0 -1
- package/dist/db/tables/fundingTransfers.js +0 -110
- package/dist/db/tables/fundingTransfers.js.map +0 -1
- package/dist/internal/funding/Action.d.ts.map +0 -1
- package/dist/internal/funding/Action.js.map +0 -1
- package/dist/internal/funding/Catalog.d.ts.map +0 -1
- package/dist/internal/funding/Catalog.js.map +0 -1
- package/dist/internal/funding/Chain.d.ts.map +0 -1
- package/dist/internal/funding/Chain.js.map +0 -1
- package/dist/internal/funding/Deposit.d.ts.map +0 -1
- package/dist/internal/funding/Deposit.js.map +0 -1
- package/dist/internal/funding/DepositAddress.d.ts.map +0 -1
- package/dist/internal/funding/DepositAddress.js.map +0 -1
- package/dist/internal/funding/DepositWebhook.d.ts.map +0 -1
- package/dist/internal/funding/DepositWebhook.js.map +0 -1
- package/dist/internal/funding/Evidence.d.ts.map +0 -1
- package/dist/internal/funding/Evidence.js.map +0 -1
- package/dist/internal/funding/Provider.d.ts.map +0 -1
- package/dist/internal/funding/Provider.js.map +0 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +0 -1
- package/dist/internal/funding/Reconciliation.js.map +0 -1
- package/dist/internal/funding/Route.d.ts +0 -21
- package/dist/internal/funding/Route.d.ts.map +0 -1
- package/dist/internal/funding/Route.js.map +0 -1
- package/dist/internal/funding/SourceObservation.d.ts.map +0 -1
- package/dist/internal/funding/SourceObservation.js.map +0 -1
- package/dist/internal/funding/Subsidy.d.ts.map +0 -1
- package/dist/internal/funding/Subsidy.js.map +0 -1
- package/dist/internal/funding/Token.d.ts.map +0 -1
- package/dist/internal/funding/Token.js.map +0 -1
- package/dist/internal/funding/Transfer.d.ts.map +0 -1
- package/dist/internal/funding/Transfer.js +0 -462
- package/dist/internal/funding/Transfer.js.map +0 -1
- package/dist/internal/funding/TransferReconciliation.d.ts.map +0 -1
- package/dist/internal/funding/TransferReconciliation.js +0 -192
- package/dist/internal/funding/TransferReconciliation.js.map +0 -1
- package/dist/internal/funding/TransferWebhook.d.ts.map +0 -1
- package/dist/internal/funding/TransferWebhook.js.map +0 -1
- package/dist/internal/funding/index.d.ts.map +0 -1
- package/dist/internal/funding/index.js.map +0 -1
- package/dist/internal/funding/providers/across.d.ts.map +0 -1
- package/dist/internal/funding/providers/across.js.map +0 -1
- package/dist/internal/funding/providers/relay.d.ts.map +0 -1
- package/dist/internal/funding/providers/relay.js.map +0 -1
- package/dist/internal/funding/providers/rhino.d.ts.map +0 -1
- package/dist/internal/funding/providers/rhino.js.map +0 -1
- package/dist/internal/funding/providers/squid.d.ts.map +0 -1
- package/dist/internal/funding/providers/squid.js.map +0 -1
- package/dist/internal/funding/providers/stargate.d.ts.map +0 -1
- package/dist/internal/funding/providers/stargate.js +0 -579
- package/dist/internal/funding/providers/stargate.js.map +0 -1
- package/dist/internal/funding/providers/symbiosis.d.ts.map +0 -1
- package/dist/internal/funding/providers/symbiosis.js.map +0 -1
- package/src/apps/funding/App.test.ts +0 -78
- package/src/apps/funding/App.ts +0 -88
- package/src/apps/funding/ProviderAttempts.ts +0 -26
- package/src/apps/funding/index.ts +0 -1
- package/src/apps/funding/routes/transfers.ts +0 -987
- package/src/db/tables/fundingCatalog.test.ts +0 -122
- package/src/db/tables/fundingCatalog.ts +0 -163
- package/src/db/tables/fundingDepositAddresses.test.ts +0 -608
- package/src/db/tables/fundingDepositAddresses.ts +0 -443
- package/src/db/tables/fundingDeposits.ts +0 -572
- package/src/db/tables/fundingIdempotency.test.ts +0 -182
- package/src/db/tables/fundingIdempotency.ts +0 -180
- package/src/db/tables/fundingTransferTransactions.test.ts +0 -112
- package/src/db/tables/fundingTransfers.test.ts +0 -115
- package/src/db/tables/fundingTransfers.ts +0 -189
- package/src/handlers/internal/multisig.test.ts +0 -818
- package/src/internal/funding/Subsidy.test.ts +0 -75
- package/src/internal/funding/Transfer.test.ts +0 -524
- package/src/internal/funding/Transfer.ts +0 -762
- package/src/internal/funding/TransferReconciliation.test.ts +0 -147
- package/src/internal/funding/TransferReconciliation.ts +0 -264
- package/src/internal/funding/providers/stargate.test.ts +0 -328
- package/src/internal/funding/providers/stargate.ts +0 -856
- /package/dist/apps/{funding → routes}/Inventory.d.ts +0 -0
- /package/src/internal/{funding → routes}/Route.test.ts +0 -0
|
@@ -4,10 +4,12 @@ import * as core_Provider from '../Provider.js';
|
|
|
4
4
|
import * as OpenApi from '../OpenApi.js';
|
|
5
5
|
import * as Schema from '../Schema.js';
|
|
6
6
|
import * as Value from '../Value.js';
|
|
7
|
+
import * as Viem from '../Viem.js';
|
|
7
8
|
import * as Action from './Action.js';
|
|
8
|
-
|
|
9
|
+
import * as Economics from './Economics.js';
|
|
10
|
+
/** Destination token used when the caller omits `destinationToken`. */
|
|
9
11
|
const defaultDestinationToken = 'usdce';
|
|
10
|
-
/**
|
|
12
|
+
/** Route provider schemas. */
|
|
11
13
|
export var schema;
|
|
12
14
|
(function (schema) {
|
|
13
15
|
/** Bounded upstream error code safe for structured logs. */
|
|
@@ -26,11 +28,11 @@ export var schema;
|
|
|
26
28
|
errorType: z.optional(z.string()),
|
|
27
29
|
type: z.optional(z.string()),
|
|
28
30
|
});
|
|
29
|
-
/** Positive decimal amount accepted by
|
|
31
|
+
/** Positive decimal amount accepted by route quote requests. */
|
|
30
32
|
schema.PositiveDecimal = z.string().check(z.regex(/^(?=.*[1-9])\d+(\.\d+)?$/));
|
|
31
|
-
/** Positive base-unit amount accepted by
|
|
33
|
+
/** Positive base-unit amount accepted by route quote requests. */
|
|
32
34
|
schema.PositiveInteger = z.string().check(z.regex(/^(?=.*[1-9])\d+$/));
|
|
33
|
-
/** Normalized chain reference passed to
|
|
35
|
+
/** Normalized chain reference passed to route providers. */
|
|
34
36
|
schema.ChainRef = OpenApi.component(Schema.describe(z.object({
|
|
35
37
|
addressFormat: z
|
|
36
38
|
.enum(['base58', 'base58check', 'hex'])
|
|
@@ -42,8 +44,8 @@ export var schema;
|
|
|
42
44
|
name: z
|
|
43
45
|
.string()
|
|
44
46
|
.check(z.describe('Human-readable chain name.'), z.meta({ examples: ['Base'] })),
|
|
45
|
-
}), 'A normalized chain reference for
|
|
46
|
-
/** Normalized token reference passed to
|
|
47
|
+
}), 'A normalized chain reference for route quotes.'), 'RoutesChain');
|
|
48
|
+
/** Normalized token reference passed to route providers. */
|
|
47
49
|
schema.TokenRef = OpenApi.component(Schema.describe(z.object({
|
|
48
50
|
address: z
|
|
49
51
|
.string()
|
|
@@ -68,43 +70,54 @@ export var schema;
|
|
|
68
70
|
})),
|
|
69
71
|
verified: z
|
|
70
72
|
.boolean()
|
|
71
|
-
.check(z.describe('Whether Tempo recognizes this token in its
|
|
72
|
-
}), 'A normalized token reference for
|
|
73
|
-
/** Provider identity embedded in
|
|
73
|
+
.check(z.describe('Whether Tempo recognizes this token in its route quote inventory.'), z.meta({ examples: [true] })),
|
|
74
|
+
}), 'A normalized token reference for route quotes.'), 'RoutesToken');
|
|
75
|
+
/** Provider identity embedded in route resources. */
|
|
74
76
|
schema.ProviderRef = OpenApi.component(Schema.describe(z.object({
|
|
75
77
|
id: z.string().check(z.describe('Stable provider id.'), z.meta({ examples: ['relay'] })),
|
|
76
78
|
name: z
|
|
77
79
|
.string()
|
|
78
80
|
.check(z.describe('Human-readable provider name.'), z.meta({ examples: ['Relay'] })),
|
|
79
|
-
}), 'Provider metadata embedded in a
|
|
80
|
-
/**
|
|
81
|
+
}), 'Provider metadata embedded in a route quote.'), 'RoutesProvider');
|
|
82
|
+
/** One token amount paid by a subsidy provider. */
|
|
83
|
+
schema.Subsidy = OpenApi.component(Schema.describe(z.object({
|
|
84
|
+
amount: Schema.TokenAmount,
|
|
85
|
+
provider: z
|
|
86
|
+
.string()
|
|
87
|
+
.check(z.minLength(1), z.describe('Stable id of the subsidy provider.'), z.meta({ examples: ['relay'] })),
|
|
88
|
+
token: schema.TokenRef,
|
|
89
|
+
}), 'One token amount paid on behalf of the deposit recipient.'), 'RoutesSubsidy');
|
|
90
|
+
/** Source amount unit accepted by a route quote request. */
|
|
81
91
|
schema.SourceAmountUnits = z
|
|
82
92
|
._default(z.enum(['baseUnits', 'decimal']), 'baseUnits')
|
|
83
93
|
.check(z.describe('Whether `sourceAmount` is base units or a human-readable decimal.'), z.meta({ examples: ['baseUnits', 'decimal'] }));
|
|
84
|
-
/** Normalized caller request passed to
|
|
94
|
+
/** Normalized caller request passed to route providers. */
|
|
85
95
|
schema.QuoteRequest = z
|
|
86
96
|
.strictObject({
|
|
97
|
+
destinationChain: z
|
|
98
|
+
.optional(z.string().check(z.minLength(1)))
|
|
99
|
+
.check(z.describe('Destination chain CAIP-2 id, slug, or alias. Defaults to Tempo.'), z.meta({ examples: ['tempo', 'base', 'ethereum', 'eip155:4217'] })),
|
|
87
100
|
destinationToken: z
|
|
88
101
|
.optional(z.string())
|
|
89
|
-
.check(z.describe('
|
|
102
|
+
.check(z.describe('Destination token symbol, address, or token key. Defaults to USDC.e for Tempo destinations.'), z.meta({ examples: ['usdc.e', 'usdc'] })),
|
|
90
103
|
provider: z
|
|
91
104
|
.optional(z.string().check(z.minLength(1)))
|
|
92
|
-
.check(z.describe('Only request a quote from this provider. Use an id returned by the
|
|
105
|
+
.check(z.describe('Only request a quote from this provider. Use an id returned by the route providers endpoint, or omit it to query every available provider.'), z.meta({ examples: ['relay', 'stargate'] })),
|
|
93
106
|
sourceAmount: schema.PositiveDecimal.check(z.describe('Positive source token amount. Base units by default, so 1 USDC is `1000000`.'), z.meta({ examples: ['1000000'] })),
|
|
94
107
|
sourceAmountUnits: schema.SourceAmountUnits,
|
|
95
108
|
sourceChain: z
|
|
96
109
|
.string()
|
|
97
|
-
.check(z.minLength(1), z.describe('Source chain alias or stable id, such as `base`, `solana`, or `eip155:8453`.'), z.meta({ examples: ['base', 'eip155:8453'] })),
|
|
98
|
-
sourceToken: z
|
|
99
|
-
|
|
100
|
-
|
|
110
|
+
.check(z.minLength(1), z.describe('Source chain alias or stable id, such as `base`, `solana`, or `eip155:8453`.'), z.meta({ examples: ['base', 'ethereum', 'tempo', 'eip155:8453'] })),
|
|
111
|
+
sourceToken: z.string().check(z.minLength(1), z.describe('Source token symbol, contract address, or Tempo token key. Lookup is scoped to `sourceChain`; non-EVM addresses are case-sensitive. An unknown token returns an empty list.'), z.meta({
|
|
112
|
+
examples: ['usdc', 'usdce', '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'],
|
|
113
|
+
})),
|
|
101
114
|
})
|
|
102
|
-
.check(z.describe('Query parameters for live
|
|
115
|
+
.check(z.describe('Query parameters for live route quotes.'));
|
|
103
116
|
/** Provider-specific quote status for the requested amount. */
|
|
104
117
|
schema.QuoteStatus = z.enum(['available', 'thin', 'unknown', 'unavailable']);
|
|
105
118
|
/** Machine-readable provider quote quality tier. */
|
|
106
119
|
schema.QualityTier = z.enum(['liquid', 'thin', 'unknown', 'unavailable']);
|
|
107
|
-
/** Quote data returned by a
|
|
120
|
+
/** Quote data returned by a route provider. */
|
|
108
121
|
schema.GetQuoteResult = Schema.describe(z.object({
|
|
109
122
|
expiresAt: z.optional(z.iso.datetime()),
|
|
110
123
|
destinationAmountMin: z.optional(Schema.DecimalString),
|
|
@@ -117,8 +130,8 @@ export var schema;
|
|
|
117
130
|
})),
|
|
118
131
|
sampledAt: z.iso.datetime(),
|
|
119
132
|
status: schema.QuoteStatus,
|
|
120
|
-
}), 'Quote data returned by a
|
|
121
|
-
/** Executable preparation returned by a
|
|
133
|
+
}), 'Quote data returned by a route provider.');
|
|
134
|
+
/** Executable preparation returned by a route provider. */
|
|
122
135
|
schema.PrepareResult = z.object({
|
|
123
136
|
action: Action.schema.Action,
|
|
124
137
|
correlation: z.optional(z.object({
|
|
@@ -137,7 +150,7 @@ export var schema;
|
|
|
137
150
|
quality: schema.GetQuoteResult.shape.quality,
|
|
138
151
|
sampledAt: z.iso.datetime(),
|
|
139
152
|
});
|
|
140
|
-
/** Reusable deposit address provisioned by a
|
|
153
|
+
/** Reusable deposit address provisioned by a route provider. */
|
|
141
154
|
schema.DepositAddressResult = z
|
|
142
155
|
.object({
|
|
143
156
|
address: z
|
|
@@ -169,6 +182,7 @@ export var schema;
|
|
|
169
182
|
refundAmountExpected: z.optional(z.string().check(z.regex(/^\d+$/))),
|
|
170
183
|
refundTransactionHashes: z.array(z.string()),
|
|
171
184
|
sourceTransactionHashes: z.array(z.string()),
|
|
185
|
+
subsidy: z.optional(schema.Subsidy),
|
|
172
186
|
status: z.string().check(z.minLength(1)),
|
|
173
187
|
updatedAt: z.iso.datetime(),
|
|
174
188
|
});
|
|
@@ -177,22 +191,16 @@ export var schema;
|
|
|
177
191
|
continuation: z.optional(z.string().check(z.minLength(1))),
|
|
178
192
|
requests: z.array(schema.DepositAddressRequest),
|
|
179
193
|
});
|
|
180
|
-
/** Quote quality signals exposed to
|
|
181
|
-
schema.
|
|
194
|
+
/** Quote quality signals exposed to routes API callers. */
|
|
195
|
+
schema.RoutesQuoteQuality = OpenApi.component(Schema.describe(z.object({
|
|
182
196
|
estimatedSeconds: z
|
|
183
197
|
.optional(z.number().check(z.int(), z.nonnegative()))
|
|
184
198
|
.check(z.describe('Estimated settlement time in seconds, when known.'), z.meta({ examples: [2] })),
|
|
185
|
-
liquiditySource: z
|
|
186
|
-
.string()
|
|
187
|
-
.check(z.describe('Provider source for the live quote quality signal.'), z.meta({ examples: ['providerQuote'] })),
|
|
188
|
-
sourceDetail: z
|
|
189
|
-
.optional(z.string())
|
|
190
|
-
.check(z.describe('Provider-specific source or endpoint detail for the quality signal.'), z.meta({ examples: ['providerEndpoint'] })),
|
|
191
199
|
tier: z
|
|
192
200
|
.enum(['liquid', 'thin'])
|
|
193
201
|
.check(z.describe('Machine-readable quote quality tier for a successful quote.'), z.meta({ examples: ['liquid'] })),
|
|
194
|
-
}), 'Machine-readable
|
|
195
|
-
/** Provider quote freshness data exposed to
|
|
202
|
+
}), 'Machine-readable quality and settlement-time signals for a successful quote.'), 'RoutesQuoteQuality');
|
|
203
|
+
/** Provider quote freshness data exposed to routes API callers. */
|
|
196
204
|
schema.QuoteDetails = OpenApi.component(Schema.describe(z.object({
|
|
197
205
|
expiresAt: z
|
|
198
206
|
.optional(z.iso.datetime())
|
|
@@ -200,60 +208,97 @@ export var schema;
|
|
|
200
208
|
sampledAt: z.iso
|
|
201
209
|
.datetime()
|
|
202
210
|
.check(z.describe('Timestamp for the live quote request.'), z.meta({ examples: ['2026-01-01T00:00:00Z'] })),
|
|
203
|
-
}), 'Freshness data for a provider
|
|
204
|
-
/** Successful normalized
|
|
205
|
-
schema.
|
|
206
|
-
destinationAmount: Schema.TokenAmount.check(z.describe('Expected
|
|
211
|
+
}), 'Freshness data for a provider route quote.'), 'RoutesQuoteDetails');
|
|
212
|
+
/** Successful normalized route quote returned to callers. */
|
|
213
|
+
schema.RoutesQuote = OpenApi.component(Schema.describe(z.object({
|
|
214
|
+
destinationAmount: Schema.TokenAmount.check(z.describe('Expected amount received after provider deductions, including pool fees.')),
|
|
207
215
|
destinationAmountMin: z
|
|
208
216
|
.optional(Schema.TokenAmount)
|
|
209
217
|
.check(z.describe('Provider-derived minimum destination amount. Symbiosis and Squid quotes use a fixed 1% slippage tolerance.')),
|
|
210
|
-
destinationChain: schema.ChainRef.check(z.describe('
|
|
211
|
-
destinationToken: schema.TokenRef.check(z.describe('
|
|
218
|
+
destinationChain: schema.ChainRef.check(z.describe('Chain that receives the routed token.')),
|
|
219
|
+
destinationToken: schema.TokenRef.check(z.describe('Token expected from this quote.')),
|
|
212
220
|
id: z
|
|
213
221
|
.string()
|
|
214
|
-
.check(z.describe('Stable deterministic
|
|
222
|
+
.check(z.describe('Stable deterministic route quote id.'), z.meta({ examples: ['base-usdc-tempo-usdce-relay'] })),
|
|
215
223
|
provider: schema.ProviderRef,
|
|
216
|
-
quality: schema.
|
|
224
|
+
quality: schema.RoutesQuoteQuality,
|
|
217
225
|
quote: schema.QuoteDetails,
|
|
218
226
|
sourceAmount: Schema.TokenAmount,
|
|
219
227
|
sourceChain: schema.ChainRef.check(z.describe('Chain where the caller currently holds funds.')),
|
|
220
228
|
sourceToken: schema.TokenRef.check(z.describe('Token the caller currently holds.')),
|
|
221
|
-
}), 'One successful provider-specific
|
|
229
|
+
}), 'One successful provider-specific route quote.'), 'RoutesQuote');
|
|
222
230
|
})(schema || (schema = {}));
|
|
223
|
-
/** Defines a
|
|
231
|
+
/** Defines a route provider from its identity and quote implementation. */
|
|
224
232
|
export function from(options) {
|
|
225
233
|
if (options.id !== normalizeInput(options.id) || options.id.length === 0)
|
|
226
234
|
throw new ProviderConfigurationError('Provider ids must be lowercase and trimmed.');
|
|
227
|
-
return core_Provider.from({ ...options, type: '
|
|
235
|
+
return core_Provider.from({ ...options, type: 'routes' });
|
|
228
236
|
}
|
|
229
|
-
/** Narrows a registered provider to a
|
|
237
|
+
/** Narrows a registered provider to a route provider. */
|
|
230
238
|
export function is(provider) {
|
|
231
|
-
return (provider.type === '
|
|
239
|
+
return (provider.type === 'routes' && 'getQuote' in provider && typeof provider.getQuote === 'function');
|
|
232
240
|
}
|
|
233
|
-
/** Narrows a
|
|
241
|
+
/** Narrows a route provider to one that prepares executable transfers. */
|
|
234
242
|
export function canPrepareTransfer(provider) {
|
|
235
243
|
return typeof provider.prepareTransfer === 'function';
|
|
236
244
|
}
|
|
237
|
-
/** Narrows a
|
|
245
|
+
/** Narrows a route provider to one that provisions reusable deposit addresses. */
|
|
238
246
|
export function canCreateDepositAddress(provider) {
|
|
239
247
|
return typeof provider.createDepositAddress === 'function';
|
|
240
248
|
}
|
|
241
|
-
/** Narrows a
|
|
249
|
+
/** Narrows a route provider to one that tracks reusable deposit addresses. */
|
|
242
250
|
export function canListDepositAddressRequests(provider) {
|
|
243
251
|
return typeof provider.listDepositAddressRequests === 'function';
|
|
244
252
|
}
|
|
245
|
-
/** Narrows a
|
|
253
|
+
/** Narrows a route provider to one that observes reusable-address delivery onchain. */
|
|
246
254
|
export function canObserveDepositAddressRequest(provider) {
|
|
247
255
|
return typeof provider.observeDepositAddressRequest === 'function';
|
|
248
256
|
}
|
|
249
|
-
/** Narrows a
|
|
257
|
+
/** Narrows a route provider to one that reconciles registered transfers. */
|
|
258
|
+
export function canReconcileTransfer(provider) {
|
|
259
|
+
return (typeof provider.verifyDestinationDelivery === 'function' &&
|
|
260
|
+
typeof provider.verifySourceTransaction === 'function');
|
|
261
|
+
}
|
|
262
|
+
/** Narrows a route provider to one that verifies submitted source transactions. */
|
|
250
263
|
export function canVerifySourceTransaction(provider) {
|
|
251
264
|
return typeof provider.verifySourceTransaction === 'function';
|
|
252
265
|
}
|
|
253
|
-
/** Narrows a
|
|
266
|
+
/** Narrows a route provider to one with authenticated webhook receipt. */
|
|
254
267
|
export function canReceiveWebhook(provider) {
|
|
255
268
|
return provider.webhook !== undefined;
|
|
256
269
|
}
|
|
270
|
+
/** Observes one provider operation without changing its result. */
|
|
271
|
+
export async function observe(provider, fn, options) {
|
|
272
|
+
const start = performance.now();
|
|
273
|
+
const report = (attempt) => {
|
|
274
|
+
try {
|
|
275
|
+
options.onAttempt(formatAttempt(attempt));
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// Observability hooks never alter provider behavior.
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
try {
|
|
282
|
+
const value = await fn();
|
|
283
|
+
report({
|
|
284
|
+
durationMs: performance.now() - start,
|
|
285
|
+
operation: options.operation,
|
|
286
|
+
outcome: 'success',
|
|
287
|
+
provider,
|
|
288
|
+
});
|
|
289
|
+
return value;
|
|
290
|
+
}
|
|
291
|
+
catch (cause) {
|
|
292
|
+
report({
|
|
293
|
+
cause,
|
|
294
|
+
durationMs: performance.now() - start,
|
|
295
|
+
operation: options.operation,
|
|
296
|
+
outcome: 'failed',
|
|
297
|
+
provider,
|
|
298
|
+
});
|
|
299
|
+
throw cause;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
257
302
|
// Slow provider responses can still contain valid quotes; keep the boundary
|
|
258
303
|
// above observed Relay latency while bounding the total request duration.
|
|
259
304
|
const defaultQuoteTimeoutMs = 5_000;
|
|
@@ -275,13 +320,13 @@ export function getChains(options) {
|
|
|
275
320
|
];
|
|
276
321
|
});
|
|
277
322
|
}
|
|
278
|
-
/** Returns the supplied
|
|
323
|
+
/** Returns the supplied route quote providers. */
|
|
279
324
|
export function getProviders(options) {
|
|
280
325
|
return options.providers
|
|
281
326
|
.filter((provider) => (options.catalog.routesByProvider.get(provider.id)?.length ?? 0) > 0)
|
|
282
327
|
.map((provider) => schema.ProviderRef.parse(provider));
|
|
283
328
|
}
|
|
284
|
-
/** Returns successful live
|
|
329
|
+
/** Returns successful live route quotes from the supplied providers. */
|
|
285
330
|
export async function getQuotes(options) {
|
|
286
331
|
const providers = options.providers ?? [];
|
|
287
332
|
const operation = 'getQuote';
|
|
@@ -296,7 +341,9 @@ export async function getQuotes(options) {
|
|
|
296
341
|
const result = await quoteCandidate(candidate, {
|
|
297
342
|
cache: options.cache ?? { bypass: false },
|
|
298
343
|
provider,
|
|
344
|
+
quotaKey: options.quotaKey ?? 'public:anonymous',
|
|
299
345
|
request: {
|
|
346
|
+
destinationChain: options.destinationChain,
|
|
300
347
|
destinationToken: options.destinationToken,
|
|
301
348
|
provider: options.provider,
|
|
302
349
|
sourceAmount: options.sourceAmount,
|
|
@@ -334,7 +381,7 @@ export async function getQuotes(options) {
|
|
|
334
381
|
options.onAttempt?.(attempt);
|
|
335
382
|
}
|
|
336
383
|
catch {
|
|
337
|
-
// Observability hooks never alter
|
|
384
|
+
// Observability hooks never alter route quote behavior.
|
|
338
385
|
}
|
|
339
386
|
}
|
|
340
387
|
const quotes = results.flatMap((result) => result.status === 'fulfilled' && result.value ? [result.value] : []);
|
|
@@ -347,6 +394,41 @@ export async function getQuotes(options) {
|
|
|
347
394
|
},
|
|
348
395
|
]
|
|
349
396
|
: []);
|
|
397
|
+
const outcome = (() => {
|
|
398
|
+
if (quotes.length > 0)
|
|
399
|
+
return 'available';
|
|
400
|
+
if (candidates.length === 0)
|
|
401
|
+
return 'unsupported';
|
|
402
|
+
if (failures.length > 0)
|
|
403
|
+
return 'failed';
|
|
404
|
+
return 'unavailable';
|
|
405
|
+
})();
|
|
406
|
+
try {
|
|
407
|
+
options.onResult?.({
|
|
408
|
+
candidateCount: candidates.length,
|
|
409
|
+
outcome,
|
|
410
|
+
quotes: quotes.map((quote) => {
|
|
411
|
+
const ageMs = Date.now() - Date.parse(quote.quote.sampledAt);
|
|
412
|
+
const customerValueLossBps = Economics.differenceBps({
|
|
413
|
+
reference: quote.sourceAmount,
|
|
414
|
+
value: quote.destinationAmount,
|
|
415
|
+
});
|
|
416
|
+
return {
|
|
417
|
+
ageMs: Math.max(0, ageMs),
|
|
418
|
+
...(customerValueLossBps === undefined ? {} : { customerValueLossBps }),
|
|
419
|
+
destinationChain: quote.destinationChain.id,
|
|
420
|
+
destinationToken: quote.destinationToken.tokenKey,
|
|
421
|
+
futureSkewMs: Math.max(0, -ageMs),
|
|
422
|
+
provider: quote.provider.id,
|
|
423
|
+
sourceChain: quote.sourceChain.id,
|
|
424
|
+
sourceToken: quote.sourceToken.tokenKey,
|
|
425
|
+
};
|
|
426
|
+
}),
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
catch {
|
|
430
|
+
// Reliability telemetry never alters route quote behavior.
|
|
431
|
+
}
|
|
350
432
|
if (quotes.length === 0 && failures.length > 0)
|
|
351
433
|
throw new ProviderQuoteError(failures, values);
|
|
352
434
|
return quotes;
|
|
@@ -359,7 +441,8 @@ export function getQuoteCandidates(options) {
|
|
|
359
441
|
throw new InvalidAmountError();
|
|
360
442
|
const sourceChain = resolveSourceChain(options.sourceChain, catalog);
|
|
361
443
|
const sourceToken = resolveSourceToken(sourceChain, options.sourceToken, catalog);
|
|
362
|
-
const
|
|
444
|
+
const destinationChain = resolveDestinationChain(options.destinationChain ?? 'tempo', catalog);
|
|
445
|
+
const destination = resolveDestinationToken(destinationChain, options.destinationToken, catalog);
|
|
363
446
|
const provider = options.provider ? resolveProvider(options.provider, providers) : undefined;
|
|
364
447
|
if (providers.length === 0)
|
|
365
448
|
return [];
|
|
@@ -397,23 +480,16 @@ export async function createDepositAddress(options) {
|
|
|
397
480
|
const operation = 'createDepositAddress';
|
|
398
481
|
if (!schema.PositiveInteger.safeParse(options.amount).success)
|
|
399
482
|
throw new InvalidAmountError();
|
|
400
|
-
const
|
|
401
|
-
const selected = candidates[0];
|
|
483
|
+
const selected = selectDepositAddress(options);
|
|
402
484
|
if (!selected)
|
|
403
485
|
return undefined;
|
|
404
|
-
const recipient = normalizeAccountAddress(options.recipient, selected.candidate.destinationChain);
|
|
405
|
-
const refundAddress = normalizeAccountAddress(options.refundAddress, selected.candidate.sourceChain);
|
|
406
|
-
if (!recipient)
|
|
407
|
-
throw new ProviderPayloadError();
|
|
408
|
-
if (!refundAddress)
|
|
409
|
-
throw new InvalidRefundAddressError();
|
|
410
486
|
const start = performance.now();
|
|
411
487
|
try {
|
|
412
488
|
const parsed = schema.DepositAddressResult.safeParse(await withTimeout((signal) => selected.provider.createDepositAddress({
|
|
413
489
|
amount: options.amount,
|
|
414
490
|
candidate: selected.candidate,
|
|
415
|
-
recipient,
|
|
416
|
-
refundAddress,
|
|
491
|
+
recipient: selected.recipient,
|
|
492
|
+
refundAddress: selected.refundAddress,
|
|
417
493
|
subsidize: options.subsidize,
|
|
418
494
|
}, signal), options.providerTimeoutMs ?? defaultPrepareTimeoutMs));
|
|
419
495
|
if (!parsed.success)
|
|
@@ -437,7 +513,7 @@ export async function createDepositAddress(options) {
|
|
|
437
513
|
catch {
|
|
438
514
|
// Observability hooks never alter provisioning behavior.
|
|
439
515
|
}
|
|
440
|
-
return { ...selected,
|
|
516
|
+
return { ...selected, result };
|
|
441
517
|
}
|
|
442
518
|
catch (cause) {
|
|
443
519
|
const attempt = cause instanceof ProviderUnavailableError
|
|
@@ -465,6 +541,20 @@ export async function createDepositAddress(options) {
|
|
|
465
541
|
throw new ProviderQuoteError([{ cause, operation, provider: selected.provider }], [attempt]);
|
|
466
542
|
}
|
|
467
543
|
}
|
|
544
|
+
/** Selects and normalizes the deterministic reusable-address route without provisioning it. */
|
|
545
|
+
export function selectDepositAddress(options) {
|
|
546
|
+
const candidates = getDepositAddressCandidates(options).sort((a, b) => a.provider.id.localeCompare(b.provider.id));
|
|
547
|
+
const selected = candidates[0];
|
|
548
|
+
if (!selected)
|
|
549
|
+
return undefined;
|
|
550
|
+
const recipient = normalizeAccountAddress(options.recipient, selected.candidate.destinationChain);
|
|
551
|
+
const refundAddress = normalizeAccountAddress(options.refundAddress, selected.candidate.sourceChain);
|
|
552
|
+
if (!recipient)
|
|
553
|
+
throw new ProviderPayloadError();
|
|
554
|
+
if (!refundAddress)
|
|
555
|
+
throw new InvalidRefundAddressError();
|
|
556
|
+
return { ...selected, recipient, refundAddress };
|
|
557
|
+
}
|
|
468
558
|
/**
|
|
469
559
|
* Prepares one executable transfer across capability-enabled candidates,
|
|
470
560
|
* selecting the best successful preparation. Returns `undefined` when no
|
|
@@ -476,6 +566,13 @@ export async function prepareTransfer(options) {
|
|
|
476
566
|
const candidates = getPrepareCandidates(options);
|
|
477
567
|
if (candidates.length === 0)
|
|
478
568
|
return undefined;
|
|
569
|
+
const first = candidates[0];
|
|
570
|
+
const recipient = normalizeAccountAddress(options.recipient, first.candidate.destinationChain);
|
|
571
|
+
if (!recipient)
|
|
572
|
+
throw new InvalidRecipientAddressError();
|
|
573
|
+
const sender = normalizeAccountAddress(options.sender, first.candidate.sourceChain);
|
|
574
|
+
if (!sender)
|
|
575
|
+
throw new InvalidSenderAddressError();
|
|
479
576
|
const attempts = [];
|
|
480
577
|
const results = await Promise.allSettled(candidates.map(async ({ candidate, provider }) => {
|
|
481
578
|
const start = performance.now();
|
|
@@ -484,8 +581,8 @@ export async function prepareTransfer(options) {
|
|
|
484
581
|
candidate,
|
|
485
582
|
method: options.method,
|
|
486
583
|
mode: options.mode,
|
|
487
|
-
recipient
|
|
488
|
-
sender
|
|
584
|
+
recipient,
|
|
585
|
+
sender,
|
|
489
586
|
slippageBps: options.slippageBps,
|
|
490
587
|
};
|
|
491
588
|
const parsed = schema.PrepareResult.safeParse(await withTimeout((signal) => provider.prepareTransfer(parameters, signal), options.providerTimeoutMs ?? defaultPrepareTimeoutMs));
|
|
@@ -512,12 +609,14 @@ export async function prepareTransfer(options) {
|
|
|
512
609
|
const constraints = provider.validateTransferAction?.({
|
|
513
610
|
...parameters,
|
|
514
611
|
action: result.action,
|
|
612
|
+
destinationAmountMin: result.destinationAmountMin,
|
|
515
613
|
});
|
|
516
614
|
Action.validateEvmCalls({
|
|
517
615
|
action: result.action,
|
|
518
616
|
nativeValues: constraints?.nativeValues,
|
|
519
617
|
sourceAmount: candidate.sourceAmount.amount,
|
|
520
618
|
sourceTokenAddress: candidate.sourceToken.address,
|
|
619
|
+
tokenApprovals: constraints?.tokenApprovals,
|
|
521
620
|
});
|
|
522
621
|
}
|
|
523
622
|
catch (cause) {
|
|
@@ -583,7 +682,15 @@ export async function prepareTransfer(options) {
|
|
|
583
682
|
return delta > 0n ? 1 : -1;
|
|
584
683
|
return a.provider.id < b.provider.id ? -1 : 1;
|
|
585
684
|
});
|
|
586
|
-
|
|
685
|
+
const selected = prepared[0];
|
|
686
|
+
const bestDestinationAmount = prepared.reduce((best, entry) => BigInt(entry.result.destinationAmount) > BigInt(best) ? entry.result.destinationAmount : best, selected.result.destinationAmount);
|
|
687
|
+
return {
|
|
688
|
+
...selected,
|
|
689
|
+
bestDestinationAmount,
|
|
690
|
+
preparedCount: prepared.length,
|
|
691
|
+
recipient,
|
|
692
|
+
sender,
|
|
693
|
+
};
|
|
587
694
|
}
|
|
588
695
|
/**
|
|
589
696
|
* Returns capability-enabled reusable-address candidates for a route. Tokens
|
|
@@ -628,14 +735,14 @@ export function getPrepareCandidates(options) {
|
|
|
628
735
|
if (!amount.success)
|
|
629
736
|
throw new InvalidAmountError();
|
|
630
737
|
const sourceChain = resolveSourceChain(options.sourceChain, options.catalog);
|
|
631
|
-
const
|
|
738
|
+
const destinationChain = resolveDestinationChain(options.destinationChain, options.catalog);
|
|
632
739
|
const selectedProvider = options.provider
|
|
633
740
|
? resolveProvider(options.provider, options.providers)
|
|
634
741
|
: undefined;
|
|
635
742
|
return options.catalog.routes.flatMap((entry) => {
|
|
636
743
|
if (entry.route.source.chain.id !== sourceChain.id)
|
|
637
744
|
return [];
|
|
638
|
-
if (entry.route.destination.chain.id !==
|
|
745
|
+
if (entry.route.destination.chain.id !== destinationChain.id)
|
|
639
746
|
return [];
|
|
640
747
|
if (!matchesToken(entry.route.source, options.sourceToken))
|
|
641
748
|
return [];
|
|
@@ -668,6 +775,9 @@ export function getPrepareCandidates(options) {
|
|
|
668
775
|
/** Returns bounded provider failure details suitable for structured request logs. */
|
|
669
776
|
export function failure(options) {
|
|
670
777
|
const { cause, operation, provider } = options;
|
|
778
|
+
const rpc = Viem.requestFailure(cause);
|
|
779
|
+
if (rpc)
|
|
780
|
+
return { ...rpc, id: provider.id, operation };
|
|
671
781
|
if (cause instanceof ProviderTimeoutError ||
|
|
672
782
|
(cause instanceof DOMException && cause.name === 'AbortError'))
|
|
673
783
|
return { failure: 'timeout', id: provider.id, operation };
|
|
@@ -681,7 +791,9 @@ export function failure(options) {
|
|
|
681
791
|
status: cause.status,
|
|
682
792
|
};
|
|
683
793
|
}
|
|
684
|
-
if (cause instanceof ProviderPayloadError
|
|
794
|
+
if (cause instanceof ProviderPayloadError ||
|
|
795
|
+
cause instanceof WebhookAuthenticationError ||
|
|
796
|
+
cause instanceof WebhookPayloadError)
|
|
685
797
|
return { failure: 'payload', id: provider.id, operation };
|
|
686
798
|
if (cause instanceof ProviderRateLimitError)
|
|
687
799
|
return { failure: 'rate_limit', id: provider.id, operation };
|
|
@@ -752,6 +864,7 @@ async function quoteCandidate(candidate, options) {
|
|
|
752
864
|
cache: options.cache,
|
|
753
865
|
destinationChain: candidate.destinationChain,
|
|
754
866
|
destinationToken: candidate.destinationToken,
|
|
867
|
+
quotaKey: options.quotaKey,
|
|
755
868
|
request: options.request,
|
|
756
869
|
route: candidate.route,
|
|
757
870
|
sourceAmount: candidate.sourceAmount,
|
|
@@ -855,7 +968,7 @@ function parseDecimalUnits(value, decimals) {
|
|
|
855
968
|
}
|
|
856
969
|
}
|
|
857
970
|
function createQuote(candidate, quote) {
|
|
858
|
-
return schema.
|
|
971
|
+
return schema.RoutesQuote.parse({
|
|
859
972
|
destinationAmount: Value.tokenAmount({
|
|
860
973
|
baseUnits: quote.destinationAmount,
|
|
861
974
|
currency: candidate.destinationToken.currency,
|
|
@@ -878,10 +991,6 @@ function createQuote(candidate, quote) {
|
|
|
878
991
|
...(quote.quality?.estimatedSeconds !== undefined
|
|
879
992
|
? { estimatedSeconds: quote.quality.estimatedSeconds }
|
|
880
993
|
: {}),
|
|
881
|
-
liquiditySource: quote.quality?.liquiditySource ?? 'providerQuote',
|
|
882
|
-
...(quote.quality?.sourceDetail !== undefined
|
|
883
|
-
? { sourceDetail: quote.quality.sourceDetail }
|
|
884
|
-
: {}),
|
|
885
994
|
tier: quote.status === 'thin' ? 'thin' : 'liquid',
|
|
886
995
|
},
|
|
887
996
|
quote: {
|
|
@@ -929,7 +1038,8 @@ function errorCode(input) {
|
|
|
929
1038
|
const parsed = schema.ErrorCode.safeParse(code);
|
|
930
1039
|
return parsed.success ? parsed.data : undefined;
|
|
931
1040
|
}
|
|
932
|
-
|
|
1041
|
+
/** Formats one provider attempt for logs and aggregate metrics. */
|
|
1042
|
+
export function formatAttempt(attempt) {
|
|
933
1043
|
return {
|
|
934
1044
|
durationMs: attempt.durationMs,
|
|
935
1045
|
...(attempt.outcome === 'failed'
|
|
@@ -946,8 +1056,17 @@ function attemptResult(attempt) {
|
|
|
946
1056
|
outcome: attempt.outcome,
|
|
947
1057
|
};
|
|
948
1058
|
}
|
|
949
|
-
function
|
|
950
|
-
const
|
|
1059
|
+
function resolveDestinationChain(input, catalog) {
|
|
1060
|
+
const normalized = normalizeInput(input);
|
|
1061
|
+
const chain = catalog.chainsByKey.get(normalized);
|
|
1062
|
+
if (!chain || !catalog.routes.some((entry) => entry.route.destination.chain.id === chain.id))
|
|
1063
|
+
throw new UnsupportedDestinationChainError();
|
|
1064
|
+
return chain;
|
|
1065
|
+
}
|
|
1066
|
+
function resolveDestinationToken(chain, input, catalog) {
|
|
1067
|
+
const destinations = uniqueBy(catalog.routes
|
|
1068
|
+
.filter((entry) => entry.route.destination.chain.id === chain.id)
|
|
1069
|
+
.map((entry) => entry.route.destination), (token) => `${token.chain.id}:${token.address}`);
|
|
951
1070
|
if (input === undefined) {
|
|
952
1071
|
const destination = destinations.find((candidate) => candidate.slug === defaultDestinationToken);
|
|
953
1072
|
if (!destination)
|
|
@@ -1028,51 +1147,63 @@ function normalizeAccountAddress(value, chain) {
|
|
|
1028
1147
|
return undefined;
|
|
1029
1148
|
}
|
|
1030
1149
|
}
|
|
1150
|
+
/** Error thrown when the caller supplies an unsupported destination chain. */
|
|
1151
|
+
export class UnsupportedDestinationChainError extends Error {
|
|
1152
|
+
name = 'RoutesProvider.UnsupportedDestinationChainError';
|
|
1153
|
+
}
|
|
1031
1154
|
/** Error thrown when the caller supplies an unsupported destination token. */
|
|
1032
1155
|
export class UnsupportedDestinationTokenError extends Error {
|
|
1033
|
-
name = '
|
|
1156
|
+
name = 'RoutesProvider.UnsupportedDestinationTokenError';
|
|
1034
1157
|
}
|
|
1035
1158
|
/** Error thrown when a provider webhook cannot be authenticated. */
|
|
1036
1159
|
export class WebhookAuthenticationError extends Error {
|
|
1037
|
-
name = '
|
|
1160
|
+
name = 'RoutesProvider.WebhookAuthenticationError';
|
|
1038
1161
|
}
|
|
1039
1162
|
/** Error thrown when an authenticated provider webhook has an invalid body. */
|
|
1040
1163
|
export class WebhookPayloadError extends Error {
|
|
1041
|
-
name = '
|
|
1164
|
+
name = 'RoutesProvider.WebhookPayloadError';
|
|
1042
1165
|
}
|
|
1043
1166
|
/** Error thrown when the caller supplies an invalid source amount. */
|
|
1044
1167
|
export class InvalidAmountError extends Error {
|
|
1045
|
-
name = '
|
|
1168
|
+
name = 'RoutesProvider.InvalidAmountError';
|
|
1046
1169
|
}
|
|
1047
1170
|
/** Error thrown when the caller supplies an invalid source-chain refund address. */
|
|
1048
1171
|
export class InvalidRefundAddressError extends Error {
|
|
1049
|
-
name = '
|
|
1172
|
+
name = 'RoutesProvider.InvalidRefundAddressError';
|
|
1173
|
+
}
|
|
1174
|
+
/** Error thrown when the caller supplies an invalid destination-chain recipient. */
|
|
1175
|
+
export class InvalidRecipientAddressError extends Error {
|
|
1176
|
+
name = 'RoutesProvider.InvalidRecipientAddressError';
|
|
1177
|
+
}
|
|
1178
|
+
/** Error thrown when the caller supplies an invalid source-chain sender. */
|
|
1179
|
+
export class InvalidSenderAddressError extends Error {
|
|
1180
|
+
name = 'RoutesProvider.InvalidSenderAddressError';
|
|
1050
1181
|
}
|
|
1051
1182
|
/** Error thrown when provider deployment configuration is invalid. */
|
|
1052
1183
|
export class ProviderConfigurationError extends Error {
|
|
1053
|
-
name = '
|
|
1184
|
+
name = 'RoutesProvider.ProviderConfigurationError';
|
|
1054
1185
|
}
|
|
1055
1186
|
/** Error thrown when a provider response does not match the requested quote. */
|
|
1056
1187
|
export class ProviderPayloadError extends Error {
|
|
1057
|
-
name = '
|
|
1188
|
+
name = 'RoutesProvider.ProviderPayloadError';
|
|
1058
1189
|
}
|
|
1059
1190
|
/** Error thrown when a provider confirms that no executable route is available. */
|
|
1060
1191
|
export class ProviderUnavailableError extends Error {
|
|
1061
|
-
name = '
|
|
1192
|
+
name = 'RoutesProvider.ProviderUnavailableError';
|
|
1062
1193
|
}
|
|
1063
1194
|
/** Error thrown internally when a provider exceeds its quote timeout. */
|
|
1064
1195
|
export class ProviderTimeoutError extends Error {
|
|
1065
|
-
name = '
|
|
1196
|
+
name = 'RoutesProvider.ProviderTimeoutError';
|
|
1066
1197
|
}
|
|
1067
1198
|
/** Error thrown when an internal provider quota rejects a quote request. */
|
|
1068
1199
|
export class ProviderRateLimitError extends Error {
|
|
1069
|
-
name = '
|
|
1200
|
+
name = 'RoutesProvider.ProviderRateLimitError';
|
|
1070
1201
|
}
|
|
1071
1202
|
/** Error thrown when a provider returns an unsuccessful HTTP response. */
|
|
1072
1203
|
export class ProviderResponseError extends Error {
|
|
1073
1204
|
status;
|
|
1074
1205
|
body;
|
|
1075
|
-
name = '
|
|
1206
|
+
name = 'RoutesProvider.ProviderResponseError';
|
|
1076
1207
|
constructor(
|
|
1077
1208
|
/** Provider response status. */
|
|
1078
1209
|
status,
|
|
@@ -1085,11 +1216,11 @@ export class ProviderResponseError extends Error {
|
|
|
1085
1216
|
}
|
|
1086
1217
|
/** Error thrown when every matching provider fails to produce a quote. */
|
|
1087
1218
|
export class ProviderQuoteError extends Error {
|
|
1088
|
-
name = '
|
|
1219
|
+
name = 'RoutesProvider.ProviderQuoteError';
|
|
1089
1220
|
/** Provider failures that prevented a successful quote. */
|
|
1090
1221
|
failures;
|
|
1091
1222
|
/** Bounded provider attempts retained for request logs. */
|
|
1092
|
-
|
|
1223
|
+
routesProviderAttempts;
|
|
1093
1224
|
/** First bounded provider failure retained for request logs. */
|
|
1094
1225
|
providerFailure;
|
|
1095
1226
|
/** Bounded provider failures retained when multiple providers failed. */
|
|
@@ -1097,7 +1228,7 @@ export class ProviderQuoteError extends Error {
|
|
|
1097
1228
|
constructor(failures, attempts = []) {
|
|
1098
1229
|
super();
|
|
1099
1230
|
this.failures = failures;
|
|
1100
|
-
this.
|
|
1231
|
+
this.routesProviderAttempts = attempts.map(formatAttempt);
|
|
1101
1232
|
const values = failures.map(failure);
|
|
1102
1233
|
const first = values[0];
|
|
1103
1234
|
if (first)
|
|
@@ -1108,10 +1239,10 @@ export class ProviderQuoteError extends Error {
|
|
|
1108
1239
|
}
|
|
1109
1240
|
/** Error thrown when the caller filters to an unknown provider. */
|
|
1110
1241
|
export class UnsupportedProviderError extends Error {
|
|
1111
|
-
name = '
|
|
1242
|
+
name = 'RoutesProvider.UnsupportedProviderError';
|
|
1112
1243
|
}
|
|
1113
1244
|
/** Error thrown when the caller supplies an unsupported source chain. */
|
|
1114
1245
|
export class UnsupportedSourceChainError extends Error {
|
|
1115
|
-
name = '
|
|
1246
|
+
name = 'RoutesProvider.UnsupportedSourceChainError';
|
|
1116
1247
|
}
|
|
1117
1248
|
//# sourceMappingURL=Provider.js.map
|