tapimo 0.13.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 +21383 -18056
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +301 -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 +2 -2
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +3936 -1337
- 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 +1446 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
- package/dist/admin/apps/earn-vaults.js +465 -8
- package/dist/admin/apps/earn-vaults.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +344 -3
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/organizations.js +288 -10
- 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 +16 -16
- 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 +40 -8
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +4310 -2548
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +86 -26
- 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 +94 -22
- 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 +1641 -352
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +1561 -120
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +15 -0
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +180 -114
- package/dist/apps/data/routes/exchanges.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 +49 -38
- 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 +95 -93
- 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 +16 -0
- 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/verified-tokens.d.ts +4 -4
- 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 +1210 -70
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +301 -163
- 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 +4119 -3297
- 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 +49 -8
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +221 -26
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +174 -72
- 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 +364 -78
- 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 +99 -24
- 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 +42 -42
- 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 +16 -16
- package/dist/apps/management/routes/orgs.d.ts +36 -20
- 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 +40 -40
- 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 +8 -8
- 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 +16 -16
- package/dist/apps/management/routes/webhooks.d.ts +931 -215
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +71 -25
- 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 +177 -26
- 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 +232 -25
- 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 +841 -136
- package/dist/apps/{funding → routes}/App.d.ts.map +1 -1
- package/dist/apps/{funding → routes}/App.js +17 -17
- 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 +123 -59
- package/dist/apps/routes/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.js +498 -223
- 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 +957 -71
- 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 +1052 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +785 -133
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +590 -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 +51 -5
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +135 -47
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +27 -1
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +38 -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/routesTransferTransactions.js +86 -0
- 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 +112 -13
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +241 -38
- 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 +22 -10
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +50 -15
- 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 +31 -14
- 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 +46 -2068
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +171 -11
- 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 -3
- 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 +9 -17
- 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 +350 -104
- package/dist/internal/routes/Provider.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Provider.js +233 -97
- 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 +13 -15
- 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 +324 -34
- 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/routes/TransferReconciliation.d.ts +55 -0
- 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/routes/TransferWebhook.d.ts +21 -0
- package/dist/internal/routes/TransferWebhook.d.ts.map +1 -0
- package/dist/internal/routes/TransferWebhook.js +43 -0
- package/dist/internal/routes/TransferWebhook.js.map +1 -0
- package/dist/internal/{funding → routes}/index.d.ts +3 -0
- package/dist/internal/routes/index.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/index.js +3 -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 +197 -122
- 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/routes/providers/stargate.d.ts +165 -0
- 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.d.ts.map +1 -1
- package/dist/internal/webhookDestinations/slack.js +22 -6
- 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 +335 -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 +611 -101
- package/src/Handler.ts +0 -1
- package/src/OpenApi.contract.test.ts +195 -0
- package/src/Scope.ts +17 -5
- package/src/Webhooks.ts +2 -2
- 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 +681 -7
- package/src/admin/apps/organizations.test.ts +342 -1
- package/src/admin/apps/organizations.ts +368 -8
- 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 +147 -3
- package/src/admin/ui/src/lib/organizations.ts +136 -0
- 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 +334 -2
- 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 +18 -3
- package/src/apps/Zones.ts +55 -8
- package/src/apps/composition.test.ts +68 -59
- package/src/apps/data/App.test.ts +154 -2
- package/src/apps/data/App.ts +102 -33
- 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 +1661 -29
- package/src/apps/data/routes/earn.ts +2314 -328
- package/src/apps/data/routes/exchanges.test.ts +752 -30
- package/src/apps/data/routes/exchanges.ts +954 -753
- package/src/apps/data/routes/fee-amm.test.ts +224 -0
- package/src/apps/data/routes/fee-amm.ts +208 -178
- 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 +659 -81
- package/src/apps/data/routes/webhooks.ts +1104 -817
- 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 +283 -34
- 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 +93 -38
- 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 +1024 -38
- package/src/apps/relay/App.ts +228 -32
- 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 +253 -29
- 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 +1362 -462
- package/src/apps/{funding → routes}/routes/deposit-addresses.ts +568 -248
- 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/routes/routes/transfers.test.ts +2876 -0
- 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 +1511 -34
- package/src/db/Schema.ts +744 -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 +725 -7
- package/src/db/tables/organizations.ts +182 -49
- package/src/db/tables/projects.test.ts +71 -0
- package/src/db/tables/projects.ts +59 -4
- 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/routesTransferTransactions.ts +158 -0
- package/src/db/tables/routesTransfers.test.ts +338 -0
- package/src/db/tables/routesTransfers.ts +662 -0
- package/src/db/tables/sponsoredTransactions.test.ts +563 -1
- package/src/db/tables/sponsoredTransactions.ts +386 -42
- 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 +103 -21
- 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 +37 -15
- package/src/internal/Email.ts +54 -0
- package/src/internal/Idempotency.test.ts +2 -2
- package/src/internal/Log.test-d.ts +10 -7
- package/src/internal/Log.test.ts +114 -16
- package/src/internal/Log.ts +55 -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 +249 -17
- package/src/internal/Webhooks.test.ts +125 -1
- 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 -8
- 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 +11 -22
- 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 +531 -185
- 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 +18 -22
- 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/routes/TransferWebhook.test.ts +128 -0
- package/src/internal/routes/TransferWebhook.ts +67 -0
- package/src/internal/{funding → routes}/index.test.ts +6 -3
- package/src/internal/{funding → routes}/index.ts +3 -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 +231 -136
- 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 +20 -5
- 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 -622
- 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 -15
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.js +0 -27
- package/dist/db/tables/fundingTransferTransactions.js.map +0 -1
- package/dist/db/tables/fundingTransfers.d.ts +0 -82
- package/dist/db/tables/fundingTransfers.d.ts.map +0 -1
- package/dist/db/tables/fundingTransfers.js +0 -89
- 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 -334
- package/dist/internal/funding/Transfer.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 +0 -38
- package/dist/internal/funding/providers/stargate.d.ts.map +0 -1
- package/dist/internal/funding/providers/stargate.js +0 -277
- 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 -78
- package/src/apps/funding/ProviderAttempts.ts +0 -26
- package/src/apps/funding/index.ts +0 -1
- package/src/apps/funding/routes/transfers.test.ts +0 -1638
- package/src/apps/funding/routes/transfers.ts +0 -721
- 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 -69
- package/src/db/tables/fundingTransferTransactions.ts +0 -37
- package/src/db/tables/fundingTransfers.test.ts +0 -89
- package/src/db/tables/fundingTransfers.ts +0 -153
- 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 -369
- package/src/internal/funding/Transfer.ts +0 -545
- package/src/internal/funding/providers/stargate.test.ts +0 -163
- package/src/internal/funding/providers/stargate.ts +0 -409
- /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({
|
|
@@ -133,10 +146,11 @@ export var schema;
|
|
|
133
146
|
side: z.enum(['destination', 'source']),
|
|
134
147
|
token: z.optional(schema.TokenRef),
|
|
135
148
|
})),
|
|
149
|
+
providerState: z.optional(z.record(z.string(), z.unknown())),
|
|
136
150
|
quality: schema.GetQuoteResult.shape.quality,
|
|
137
151
|
sampledAt: z.iso.datetime(),
|
|
138
152
|
});
|
|
139
|
-
/** Reusable deposit address provisioned by a
|
|
153
|
+
/** Reusable deposit address provisioned by a route provider. */
|
|
140
154
|
schema.DepositAddressResult = z
|
|
141
155
|
.object({
|
|
142
156
|
address: z
|
|
@@ -168,6 +182,7 @@ export var schema;
|
|
|
168
182
|
refundAmountExpected: z.optional(z.string().check(z.regex(/^\d+$/))),
|
|
169
183
|
refundTransactionHashes: z.array(z.string()),
|
|
170
184
|
sourceTransactionHashes: z.array(z.string()),
|
|
185
|
+
subsidy: z.optional(schema.Subsidy),
|
|
171
186
|
status: z.string().check(z.minLength(1)),
|
|
172
187
|
updatedAt: z.iso.datetime(),
|
|
173
188
|
});
|
|
@@ -176,22 +191,16 @@ export var schema;
|
|
|
176
191
|
continuation: z.optional(z.string().check(z.minLength(1))),
|
|
177
192
|
requests: z.array(schema.DepositAddressRequest),
|
|
178
193
|
});
|
|
179
|
-
/** Quote quality signals exposed to
|
|
180
|
-
schema.
|
|
194
|
+
/** Quote quality signals exposed to routes API callers. */
|
|
195
|
+
schema.RoutesQuoteQuality = OpenApi.component(Schema.describe(z.object({
|
|
181
196
|
estimatedSeconds: z
|
|
182
197
|
.optional(z.number().check(z.int(), z.nonnegative()))
|
|
183
198
|
.check(z.describe('Estimated settlement time in seconds, when known.'), z.meta({ examples: [2] })),
|
|
184
|
-
liquiditySource: z
|
|
185
|
-
.string()
|
|
186
|
-
.check(z.describe('Provider source for the live quote quality signal.'), z.meta({ examples: ['providerQuote'] })),
|
|
187
|
-
sourceDetail: z
|
|
188
|
-
.optional(z.string())
|
|
189
|
-
.check(z.describe('Provider-specific source or endpoint detail for the quality signal.'), z.meta({ examples: ['providerEndpoint'] })),
|
|
190
199
|
tier: z
|
|
191
200
|
.enum(['liquid', 'thin'])
|
|
192
201
|
.check(z.describe('Machine-readable quote quality tier for a successful quote.'), z.meta({ examples: ['liquid'] })),
|
|
193
|
-
}), 'Machine-readable
|
|
194
|
-
/** 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. */
|
|
195
204
|
schema.QuoteDetails = OpenApi.component(Schema.describe(z.object({
|
|
196
205
|
expiresAt: z
|
|
197
206
|
.optional(z.iso.datetime())
|
|
@@ -199,56 +208,97 @@ export var schema;
|
|
|
199
208
|
sampledAt: z.iso
|
|
200
209
|
.datetime()
|
|
201
210
|
.check(z.describe('Timestamp for the live quote request.'), z.meta({ examples: ['2026-01-01T00:00:00Z'] })),
|
|
202
|
-
}), 'Freshness data for a provider
|
|
203
|
-
/** Successful normalized
|
|
204
|
-
schema.
|
|
205
|
-
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.')),
|
|
206
215
|
destinationAmountMin: z
|
|
207
216
|
.optional(Schema.TokenAmount)
|
|
208
217
|
.check(z.describe('Provider-derived minimum destination amount. Symbiosis and Squid quotes use a fixed 1% slippage tolerance.')),
|
|
209
|
-
destinationChain: schema.ChainRef.check(z.describe('
|
|
210
|
-
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.')),
|
|
211
220
|
id: z
|
|
212
221
|
.string()
|
|
213
|
-
.check(z.describe('Stable deterministic
|
|
222
|
+
.check(z.describe('Stable deterministic route quote id.'), z.meta({ examples: ['base-usdc-tempo-usdce-relay'] })),
|
|
214
223
|
provider: schema.ProviderRef,
|
|
215
|
-
quality: schema.
|
|
224
|
+
quality: schema.RoutesQuoteQuality,
|
|
216
225
|
quote: schema.QuoteDetails,
|
|
217
226
|
sourceAmount: Schema.TokenAmount,
|
|
218
227
|
sourceChain: schema.ChainRef.check(z.describe('Chain where the caller currently holds funds.')),
|
|
219
228
|
sourceToken: schema.TokenRef.check(z.describe('Token the caller currently holds.')),
|
|
220
|
-
}), 'One successful provider-specific
|
|
229
|
+
}), 'One successful provider-specific route quote.'), 'RoutesQuote');
|
|
221
230
|
})(schema || (schema = {}));
|
|
222
|
-
/** Defines a
|
|
231
|
+
/** Defines a route provider from its identity and quote implementation. */
|
|
223
232
|
export function from(options) {
|
|
224
233
|
if (options.id !== normalizeInput(options.id) || options.id.length === 0)
|
|
225
234
|
throw new ProviderConfigurationError('Provider ids must be lowercase and trimmed.');
|
|
226
|
-
return core_Provider.from({ ...options, type: '
|
|
235
|
+
return core_Provider.from({ ...options, type: 'routes' });
|
|
227
236
|
}
|
|
228
|
-
/** Narrows a registered provider to a
|
|
237
|
+
/** Narrows a registered provider to a route provider. */
|
|
229
238
|
export function is(provider) {
|
|
230
|
-
return (provider.type === '
|
|
239
|
+
return (provider.type === 'routes' && 'getQuote' in provider && typeof provider.getQuote === 'function');
|
|
231
240
|
}
|
|
232
|
-
/** Narrows a
|
|
241
|
+
/** Narrows a route provider to one that prepares executable transfers. */
|
|
233
242
|
export function canPrepareTransfer(provider) {
|
|
234
243
|
return typeof provider.prepareTransfer === 'function';
|
|
235
244
|
}
|
|
236
|
-
/** Narrows a
|
|
245
|
+
/** Narrows a route provider to one that provisions reusable deposit addresses. */
|
|
237
246
|
export function canCreateDepositAddress(provider) {
|
|
238
247
|
return typeof provider.createDepositAddress === 'function';
|
|
239
248
|
}
|
|
240
|
-
/** Narrows a
|
|
249
|
+
/** Narrows a route provider to one that tracks reusable deposit addresses. */
|
|
241
250
|
export function canListDepositAddressRequests(provider) {
|
|
242
251
|
return typeof provider.listDepositAddressRequests === 'function';
|
|
243
252
|
}
|
|
244
|
-
/** Narrows a
|
|
253
|
+
/** Narrows a route provider to one that observes reusable-address delivery onchain. */
|
|
245
254
|
export function canObserveDepositAddressRequest(provider) {
|
|
246
255
|
return typeof provider.observeDepositAddressRequest === 'function';
|
|
247
256
|
}
|
|
248
|
-
/** 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. */
|
|
263
|
+
export function canVerifySourceTransaction(provider) {
|
|
264
|
+
return typeof provider.verifySourceTransaction === 'function';
|
|
265
|
+
}
|
|
266
|
+
/** Narrows a route provider to one with authenticated webhook receipt. */
|
|
249
267
|
export function canReceiveWebhook(provider) {
|
|
250
268
|
return provider.webhook !== undefined;
|
|
251
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
|
+
}
|
|
252
302
|
// Slow provider responses can still contain valid quotes; keep the boundary
|
|
253
303
|
// above observed Relay latency while bounding the total request duration.
|
|
254
304
|
const defaultQuoteTimeoutMs = 5_000;
|
|
@@ -270,13 +320,13 @@ export function getChains(options) {
|
|
|
270
320
|
];
|
|
271
321
|
});
|
|
272
322
|
}
|
|
273
|
-
/** Returns the supplied
|
|
323
|
+
/** Returns the supplied route quote providers. */
|
|
274
324
|
export function getProviders(options) {
|
|
275
325
|
return options.providers
|
|
276
326
|
.filter((provider) => (options.catalog.routesByProvider.get(provider.id)?.length ?? 0) > 0)
|
|
277
327
|
.map((provider) => schema.ProviderRef.parse(provider));
|
|
278
328
|
}
|
|
279
|
-
/** Returns successful live
|
|
329
|
+
/** Returns successful live route quotes from the supplied providers. */
|
|
280
330
|
export async function getQuotes(options) {
|
|
281
331
|
const providers = options.providers ?? [];
|
|
282
332
|
const operation = 'getQuote';
|
|
@@ -291,7 +341,9 @@ export async function getQuotes(options) {
|
|
|
291
341
|
const result = await quoteCandidate(candidate, {
|
|
292
342
|
cache: options.cache ?? { bypass: false },
|
|
293
343
|
provider,
|
|
344
|
+
quotaKey: options.quotaKey ?? 'public:anonymous',
|
|
294
345
|
request: {
|
|
346
|
+
destinationChain: options.destinationChain,
|
|
295
347
|
destinationToken: options.destinationToken,
|
|
296
348
|
provider: options.provider,
|
|
297
349
|
sourceAmount: options.sourceAmount,
|
|
@@ -329,7 +381,7 @@ export async function getQuotes(options) {
|
|
|
329
381
|
options.onAttempt?.(attempt);
|
|
330
382
|
}
|
|
331
383
|
catch {
|
|
332
|
-
// Observability hooks never alter
|
|
384
|
+
// Observability hooks never alter route quote behavior.
|
|
333
385
|
}
|
|
334
386
|
}
|
|
335
387
|
const quotes = results.flatMap((result) => result.status === 'fulfilled' && result.value ? [result.value] : []);
|
|
@@ -342,6 +394,41 @@ export async function getQuotes(options) {
|
|
|
342
394
|
},
|
|
343
395
|
]
|
|
344
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
|
+
}
|
|
345
432
|
if (quotes.length === 0 && failures.length > 0)
|
|
346
433
|
throw new ProviderQuoteError(failures, values);
|
|
347
434
|
return quotes;
|
|
@@ -354,7 +441,8 @@ export function getQuoteCandidates(options) {
|
|
|
354
441
|
throw new InvalidAmountError();
|
|
355
442
|
const sourceChain = resolveSourceChain(options.sourceChain, catalog);
|
|
356
443
|
const sourceToken = resolveSourceToken(sourceChain, options.sourceToken, catalog);
|
|
357
|
-
const
|
|
444
|
+
const destinationChain = resolveDestinationChain(options.destinationChain ?? 'tempo', catalog);
|
|
445
|
+
const destination = resolveDestinationToken(destinationChain, options.destinationToken, catalog);
|
|
358
446
|
const provider = options.provider ? resolveProvider(options.provider, providers) : undefined;
|
|
359
447
|
if (providers.length === 0)
|
|
360
448
|
return [];
|
|
@@ -392,23 +480,16 @@ export async function createDepositAddress(options) {
|
|
|
392
480
|
const operation = 'createDepositAddress';
|
|
393
481
|
if (!schema.PositiveInteger.safeParse(options.amount).success)
|
|
394
482
|
throw new InvalidAmountError();
|
|
395
|
-
const
|
|
396
|
-
const selected = candidates[0];
|
|
483
|
+
const selected = selectDepositAddress(options);
|
|
397
484
|
if (!selected)
|
|
398
485
|
return undefined;
|
|
399
|
-
const recipient = normalizeAccountAddress(options.recipient, selected.candidate.destinationChain);
|
|
400
|
-
const refundAddress = normalizeAccountAddress(options.refundAddress, selected.candidate.sourceChain);
|
|
401
|
-
if (!recipient)
|
|
402
|
-
throw new ProviderPayloadError();
|
|
403
|
-
if (!refundAddress)
|
|
404
|
-
throw new InvalidRefundAddressError();
|
|
405
486
|
const start = performance.now();
|
|
406
487
|
try {
|
|
407
488
|
const parsed = schema.DepositAddressResult.safeParse(await withTimeout((signal) => selected.provider.createDepositAddress({
|
|
408
489
|
amount: options.amount,
|
|
409
490
|
candidate: selected.candidate,
|
|
410
|
-
recipient,
|
|
411
|
-
refundAddress,
|
|
491
|
+
recipient: selected.recipient,
|
|
492
|
+
refundAddress: selected.refundAddress,
|
|
412
493
|
subsidize: options.subsidize,
|
|
413
494
|
}, signal), options.providerTimeoutMs ?? defaultPrepareTimeoutMs));
|
|
414
495
|
if (!parsed.success)
|
|
@@ -432,7 +513,7 @@ export async function createDepositAddress(options) {
|
|
|
432
513
|
catch {
|
|
433
514
|
// Observability hooks never alter provisioning behavior.
|
|
434
515
|
}
|
|
435
|
-
return { ...selected,
|
|
516
|
+
return { ...selected, result };
|
|
436
517
|
}
|
|
437
518
|
catch (cause) {
|
|
438
519
|
const attempt = cause instanceof ProviderUnavailableError
|
|
@@ -460,6 +541,20 @@ export async function createDepositAddress(options) {
|
|
|
460
541
|
throw new ProviderQuoteError([{ cause, operation, provider: selected.provider }], [attempt]);
|
|
461
542
|
}
|
|
462
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
|
+
}
|
|
463
558
|
/**
|
|
464
559
|
* Prepares one executable transfer across capability-enabled candidates,
|
|
465
560
|
* selecting the best successful preparation. Returns `undefined` when no
|
|
@@ -471,6 +566,13 @@ export async function prepareTransfer(options) {
|
|
|
471
566
|
const candidates = getPrepareCandidates(options);
|
|
472
567
|
if (candidates.length === 0)
|
|
473
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();
|
|
474
576
|
const attempts = [];
|
|
475
577
|
const results = await Promise.allSettled(candidates.map(async ({ candidate, provider }) => {
|
|
476
578
|
const start = performance.now();
|
|
@@ -479,8 +581,8 @@ export async function prepareTransfer(options) {
|
|
|
479
581
|
candidate,
|
|
480
582
|
method: options.method,
|
|
481
583
|
mode: options.mode,
|
|
482
|
-
recipient
|
|
483
|
-
sender
|
|
584
|
+
recipient,
|
|
585
|
+
sender,
|
|
484
586
|
slippageBps: options.slippageBps,
|
|
485
587
|
};
|
|
486
588
|
const parsed = schema.PrepareResult.safeParse(await withTimeout((signal) => provider.prepareTransfer(parameters, signal), options.providerTimeoutMs ?? defaultPrepareTimeoutMs));
|
|
@@ -507,12 +609,14 @@ export async function prepareTransfer(options) {
|
|
|
507
609
|
const constraints = provider.validateTransferAction?.({
|
|
508
610
|
...parameters,
|
|
509
611
|
action: result.action,
|
|
612
|
+
destinationAmountMin: result.destinationAmountMin,
|
|
510
613
|
});
|
|
511
614
|
Action.validateEvmCalls({
|
|
512
615
|
action: result.action,
|
|
513
616
|
nativeValues: constraints?.nativeValues,
|
|
514
617
|
sourceAmount: candidate.sourceAmount.amount,
|
|
515
618
|
sourceTokenAddress: candidate.sourceToken.address,
|
|
619
|
+
tokenApprovals: constraints?.tokenApprovals,
|
|
516
620
|
});
|
|
517
621
|
}
|
|
518
622
|
catch (cause) {
|
|
@@ -578,7 +682,15 @@ export async function prepareTransfer(options) {
|
|
|
578
682
|
return delta > 0n ? 1 : -1;
|
|
579
683
|
return a.provider.id < b.provider.id ? -1 : 1;
|
|
580
684
|
});
|
|
581
|
-
|
|
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
|
+
};
|
|
582
694
|
}
|
|
583
695
|
/**
|
|
584
696
|
* Returns capability-enabled reusable-address candidates for a route. Tokens
|
|
@@ -623,14 +735,14 @@ export function getPrepareCandidates(options) {
|
|
|
623
735
|
if (!amount.success)
|
|
624
736
|
throw new InvalidAmountError();
|
|
625
737
|
const sourceChain = resolveSourceChain(options.sourceChain, options.catalog);
|
|
626
|
-
const
|
|
738
|
+
const destinationChain = resolveDestinationChain(options.destinationChain, options.catalog);
|
|
627
739
|
const selectedProvider = options.provider
|
|
628
740
|
? resolveProvider(options.provider, options.providers)
|
|
629
741
|
: undefined;
|
|
630
742
|
return options.catalog.routes.flatMap((entry) => {
|
|
631
743
|
if (entry.route.source.chain.id !== sourceChain.id)
|
|
632
744
|
return [];
|
|
633
|
-
if (entry.route.destination.chain.id !==
|
|
745
|
+
if (entry.route.destination.chain.id !== destinationChain.id)
|
|
634
746
|
return [];
|
|
635
747
|
if (!matchesToken(entry.route.source, options.sourceToken))
|
|
636
748
|
return [];
|
|
@@ -663,6 +775,9 @@ export function getPrepareCandidates(options) {
|
|
|
663
775
|
/** Returns bounded provider failure details suitable for structured request logs. */
|
|
664
776
|
export function failure(options) {
|
|
665
777
|
const { cause, operation, provider } = options;
|
|
778
|
+
const rpc = Viem.requestFailure(cause);
|
|
779
|
+
if (rpc)
|
|
780
|
+
return { ...rpc, id: provider.id, operation };
|
|
666
781
|
if (cause instanceof ProviderTimeoutError ||
|
|
667
782
|
(cause instanceof DOMException && cause.name === 'AbortError'))
|
|
668
783
|
return { failure: 'timeout', id: provider.id, operation };
|
|
@@ -676,7 +791,9 @@ export function failure(options) {
|
|
|
676
791
|
status: cause.status,
|
|
677
792
|
};
|
|
678
793
|
}
|
|
679
|
-
if (cause instanceof ProviderPayloadError
|
|
794
|
+
if (cause instanceof ProviderPayloadError ||
|
|
795
|
+
cause instanceof WebhookAuthenticationError ||
|
|
796
|
+
cause instanceof WebhookPayloadError)
|
|
680
797
|
return { failure: 'payload', id: provider.id, operation };
|
|
681
798
|
if (cause instanceof ProviderRateLimitError)
|
|
682
799
|
return { failure: 'rate_limit', id: provider.id, operation };
|
|
@@ -747,6 +864,7 @@ async function quoteCandidate(candidate, options) {
|
|
|
747
864
|
cache: options.cache,
|
|
748
865
|
destinationChain: candidate.destinationChain,
|
|
749
866
|
destinationToken: candidate.destinationToken,
|
|
867
|
+
quotaKey: options.quotaKey,
|
|
750
868
|
request: options.request,
|
|
751
869
|
route: candidate.route,
|
|
752
870
|
sourceAmount: candidate.sourceAmount,
|
|
@@ -850,7 +968,7 @@ function parseDecimalUnits(value, decimals) {
|
|
|
850
968
|
}
|
|
851
969
|
}
|
|
852
970
|
function createQuote(candidate, quote) {
|
|
853
|
-
return schema.
|
|
971
|
+
return schema.RoutesQuote.parse({
|
|
854
972
|
destinationAmount: Value.tokenAmount({
|
|
855
973
|
baseUnits: quote.destinationAmount,
|
|
856
974
|
currency: candidate.destinationToken.currency,
|
|
@@ -873,10 +991,6 @@ function createQuote(candidate, quote) {
|
|
|
873
991
|
...(quote.quality?.estimatedSeconds !== undefined
|
|
874
992
|
? { estimatedSeconds: quote.quality.estimatedSeconds }
|
|
875
993
|
: {}),
|
|
876
|
-
liquiditySource: quote.quality?.liquiditySource ?? 'providerQuote',
|
|
877
|
-
...(quote.quality?.sourceDetail !== undefined
|
|
878
|
-
? { sourceDetail: quote.quality.sourceDetail }
|
|
879
|
-
: {}),
|
|
880
994
|
tier: quote.status === 'thin' ? 'thin' : 'liquid',
|
|
881
995
|
},
|
|
882
996
|
quote: {
|
|
@@ -924,7 +1038,8 @@ function errorCode(input) {
|
|
|
924
1038
|
const parsed = schema.ErrorCode.safeParse(code);
|
|
925
1039
|
return parsed.success ? parsed.data : undefined;
|
|
926
1040
|
}
|
|
927
|
-
|
|
1041
|
+
/** Formats one provider attempt for logs and aggregate metrics. */
|
|
1042
|
+
export function formatAttempt(attempt) {
|
|
928
1043
|
return {
|
|
929
1044
|
durationMs: attempt.durationMs,
|
|
930
1045
|
...(attempt.outcome === 'failed'
|
|
@@ -941,8 +1056,17 @@ function attemptResult(attempt) {
|
|
|
941
1056
|
outcome: attempt.outcome,
|
|
942
1057
|
};
|
|
943
1058
|
}
|
|
944
|
-
function
|
|
945
|
-
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}`);
|
|
946
1070
|
if (input === undefined) {
|
|
947
1071
|
const destination = destinations.find((candidate) => candidate.slug === defaultDestinationToken);
|
|
948
1072
|
if (!destination)
|
|
@@ -1023,51 +1147,63 @@ function normalizeAccountAddress(value, chain) {
|
|
|
1023
1147
|
return undefined;
|
|
1024
1148
|
}
|
|
1025
1149
|
}
|
|
1150
|
+
/** Error thrown when the caller supplies an unsupported destination chain. */
|
|
1151
|
+
export class UnsupportedDestinationChainError extends Error {
|
|
1152
|
+
name = 'RoutesProvider.UnsupportedDestinationChainError';
|
|
1153
|
+
}
|
|
1026
1154
|
/** Error thrown when the caller supplies an unsupported destination token. */
|
|
1027
1155
|
export class UnsupportedDestinationTokenError extends Error {
|
|
1028
|
-
name = '
|
|
1156
|
+
name = 'RoutesProvider.UnsupportedDestinationTokenError';
|
|
1029
1157
|
}
|
|
1030
1158
|
/** Error thrown when a provider webhook cannot be authenticated. */
|
|
1031
1159
|
export class WebhookAuthenticationError extends Error {
|
|
1032
|
-
name = '
|
|
1160
|
+
name = 'RoutesProvider.WebhookAuthenticationError';
|
|
1033
1161
|
}
|
|
1034
1162
|
/** Error thrown when an authenticated provider webhook has an invalid body. */
|
|
1035
1163
|
export class WebhookPayloadError extends Error {
|
|
1036
|
-
name = '
|
|
1164
|
+
name = 'RoutesProvider.WebhookPayloadError';
|
|
1037
1165
|
}
|
|
1038
1166
|
/** Error thrown when the caller supplies an invalid source amount. */
|
|
1039
1167
|
export class InvalidAmountError extends Error {
|
|
1040
|
-
name = '
|
|
1168
|
+
name = 'RoutesProvider.InvalidAmountError';
|
|
1041
1169
|
}
|
|
1042
1170
|
/** Error thrown when the caller supplies an invalid source-chain refund address. */
|
|
1043
1171
|
export class InvalidRefundAddressError extends Error {
|
|
1044
|
-
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';
|
|
1045
1181
|
}
|
|
1046
1182
|
/** Error thrown when provider deployment configuration is invalid. */
|
|
1047
1183
|
export class ProviderConfigurationError extends Error {
|
|
1048
|
-
name = '
|
|
1184
|
+
name = 'RoutesProvider.ProviderConfigurationError';
|
|
1049
1185
|
}
|
|
1050
1186
|
/** Error thrown when a provider response does not match the requested quote. */
|
|
1051
1187
|
export class ProviderPayloadError extends Error {
|
|
1052
|
-
name = '
|
|
1188
|
+
name = 'RoutesProvider.ProviderPayloadError';
|
|
1053
1189
|
}
|
|
1054
1190
|
/** Error thrown when a provider confirms that no executable route is available. */
|
|
1055
1191
|
export class ProviderUnavailableError extends Error {
|
|
1056
|
-
name = '
|
|
1192
|
+
name = 'RoutesProvider.ProviderUnavailableError';
|
|
1057
1193
|
}
|
|
1058
1194
|
/** Error thrown internally when a provider exceeds its quote timeout. */
|
|
1059
1195
|
export class ProviderTimeoutError extends Error {
|
|
1060
|
-
name = '
|
|
1196
|
+
name = 'RoutesProvider.ProviderTimeoutError';
|
|
1061
1197
|
}
|
|
1062
1198
|
/** Error thrown when an internal provider quota rejects a quote request. */
|
|
1063
1199
|
export class ProviderRateLimitError extends Error {
|
|
1064
|
-
name = '
|
|
1200
|
+
name = 'RoutesProvider.ProviderRateLimitError';
|
|
1065
1201
|
}
|
|
1066
1202
|
/** Error thrown when a provider returns an unsuccessful HTTP response. */
|
|
1067
1203
|
export class ProviderResponseError extends Error {
|
|
1068
1204
|
status;
|
|
1069
1205
|
body;
|
|
1070
|
-
name = '
|
|
1206
|
+
name = 'RoutesProvider.ProviderResponseError';
|
|
1071
1207
|
constructor(
|
|
1072
1208
|
/** Provider response status. */
|
|
1073
1209
|
status,
|
|
@@ -1080,11 +1216,11 @@ export class ProviderResponseError extends Error {
|
|
|
1080
1216
|
}
|
|
1081
1217
|
/** Error thrown when every matching provider fails to produce a quote. */
|
|
1082
1218
|
export class ProviderQuoteError extends Error {
|
|
1083
|
-
name = '
|
|
1219
|
+
name = 'RoutesProvider.ProviderQuoteError';
|
|
1084
1220
|
/** Provider failures that prevented a successful quote. */
|
|
1085
1221
|
failures;
|
|
1086
1222
|
/** Bounded provider attempts retained for request logs. */
|
|
1087
|
-
|
|
1223
|
+
routesProviderAttempts;
|
|
1088
1224
|
/** First bounded provider failure retained for request logs. */
|
|
1089
1225
|
providerFailure;
|
|
1090
1226
|
/** Bounded provider failures retained when multiple providers failed. */
|
|
@@ -1092,7 +1228,7 @@ export class ProviderQuoteError extends Error {
|
|
|
1092
1228
|
constructor(failures, attempts = []) {
|
|
1093
1229
|
super();
|
|
1094
1230
|
this.failures = failures;
|
|
1095
|
-
this.
|
|
1231
|
+
this.routesProviderAttempts = attempts.map(formatAttempt);
|
|
1096
1232
|
const values = failures.map(failure);
|
|
1097
1233
|
const first = values[0];
|
|
1098
1234
|
if (first)
|
|
@@ -1103,10 +1239,10 @@ export class ProviderQuoteError extends Error {
|
|
|
1103
1239
|
}
|
|
1104
1240
|
/** Error thrown when the caller filters to an unknown provider. */
|
|
1105
1241
|
export class UnsupportedProviderError extends Error {
|
|
1106
|
-
name = '
|
|
1242
|
+
name = 'RoutesProvider.UnsupportedProviderError';
|
|
1107
1243
|
}
|
|
1108
1244
|
/** Error thrown when the caller supplies an unsupported source chain. */
|
|
1109
1245
|
export class UnsupportedSourceChainError extends Error {
|
|
1110
|
-
name = '
|
|
1246
|
+
name = 'RoutesProvider.UnsupportedSourceChainError';
|
|
1111
1247
|
}
|
|
1112
1248
|
//# sourceMappingURL=Provider.js.map
|