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
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { AbiEvent, AbiFunction, Address, Base58, Bytes, Hash, Hex
|
|
2
|
-
import { createClient, custom, fallback } from 'viem'
|
|
1
|
+
import { AbiEvent, AbiFunction, Address, Base58, Bytes, Hash, Hex } from 'ox'
|
|
3
2
|
import { getBlockNumber, getLogs, getTransaction, getTransactionReceipt } from 'viem/actions'
|
|
4
3
|
import * as z from 'zod/mini'
|
|
5
4
|
|
|
6
5
|
import * as Db from '../../../db/Db.js'
|
|
7
|
-
import * as
|
|
8
|
-
import * as
|
|
6
|
+
import * as RoutesDepositAddresses from '../../../db/tables/routesDepositAddresses.js'
|
|
7
|
+
import * as RoutesDepositRequestObservations from '../../../db/tables/routesDepositRequestObservations.js'
|
|
8
|
+
import * as Value from '../../Value.js'
|
|
9
9
|
import * as Viem from '../../Viem.js'
|
|
10
|
-
import * as
|
|
11
|
-
import * as
|
|
10
|
+
import * as RoutesCatalog from '../Catalog.js'
|
|
11
|
+
import * as RoutesChain from '../Chain.js'
|
|
12
12
|
import * as Evidence from '../Evidence.js'
|
|
13
|
-
import * as
|
|
13
|
+
import * as RoutesProvider from '../Provider.js'
|
|
14
14
|
import * as Subsidy from '../Subsidy.js'
|
|
15
15
|
|
|
16
16
|
const defaultBaseUrl = 'https://api.relay.link'
|
|
17
|
-
const defaultFetch:
|
|
17
|
+
const defaultFetch: RoutesProvider.Fetch = (input, init) => globalThis.fetch(input, init)
|
|
18
18
|
const deliveryBackfillBlocks = 256n
|
|
19
19
|
const relayChainsCacheTtlMs = 60_000
|
|
20
20
|
const relayRefundStatuses = ['refund', 'refunded'] as const
|
|
21
|
+
const relayRequestPageLimit = 100
|
|
21
22
|
const sourceSweepForwardBlocks = 256n
|
|
22
23
|
const depositErc20FullAllowance = AbiFunction.from(
|
|
23
24
|
'function depositErc20(address depositor,address token,bytes32 id)',
|
|
@@ -148,12 +149,12 @@ namespace schema {
|
|
|
148
149
|
z.object({
|
|
149
150
|
v2: z.optional(
|
|
150
151
|
z.object({
|
|
151
|
-
depository: z.string().check(z.
|
|
152
|
+
depository: z.string().check(z.minLength(1)),
|
|
152
153
|
}),
|
|
153
154
|
),
|
|
154
155
|
}),
|
|
155
156
|
),
|
|
156
|
-
solverAddresses: z.optional(z.array(z.string().check(z.
|
|
157
|
+
solverAddresses: z.optional(z.array(z.string().check(z.minLength(1)))),
|
|
157
158
|
}),
|
|
158
159
|
),
|
|
159
160
|
})
|
|
@@ -176,8 +177,9 @@ namespace schema {
|
|
|
176
177
|
}),
|
|
177
178
|
})
|
|
178
179
|
|
|
180
|
+
// Relay can publish output entries before assigning their transaction hashes.
|
|
179
181
|
const RequestTransaction = z.object({
|
|
180
|
-
txHash: z.
|
|
182
|
+
txHash: z.optional(z.nullable(z.string())),
|
|
181
183
|
})
|
|
182
184
|
|
|
183
185
|
export const Requests = z.object({
|
|
@@ -187,6 +189,21 @@ namespace schema {
|
|
|
187
189
|
createdAt: z.iso.datetime(),
|
|
188
190
|
data: z.optional(
|
|
189
191
|
z.object({
|
|
192
|
+
feeSponsorship: z.optional(
|
|
193
|
+
z.object({
|
|
194
|
+
actual: z.optional(
|
|
195
|
+
z.object({
|
|
196
|
+
sponsorPayment: z.optional(
|
|
197
|
+
z.object({
|
|
198
|
+
address: z.string().check(z.minLength(1)),
|
|
199
|
+
amount: z.string().check(z.regex(/^\d+$/)),
|
|
200
|
+
chainId: Integer,
|
|
201
|
+
}),
|
|
202
|
+
),
|
|
203
|
+
}),
|
|
204
|
+
),
|
|
205
|
+
}),
|
|
206
|
+
),
|
|
190
207
|
outTxs: z.optional(z.array(RequestTransaction)),
|
|
191
208
|
}),
|
|
192
209
|
),
|
|
@@ -247,44 +264,130 @@ namespace schema {
|
|
|
247
264
|
/** Validates a Relay request-list response and reports payload drift with field-level details. */
|
|
248
265
|
export function parseDepositAddressRequests(value: unknown) {
|
|
249
266
|
const parsed = schema.Requests.safeParse(value)
|
|
250
|
-
if (!parsed.success) throw new
|
|
267
|
+
if (!parsed.success) throw new RoutesProvider.ProviderPayloadError(z.prettifyError(parsed.error))
|
|
251
268
|
return parsed.data
|
|
252
269
|
}
|
|
253
270
|
|
|
254
|
-
/** Creates a Relay
|
|
255
|
-
export function relay(options: relay.Options = {}):
|
|
271
|
+
/** Creates a Relay route provider backed by `/quote/v2`. */
|
|
272
|
+
export function relay(options: relay.Options = {}): RoutesProvider.Provider<'relay'> {
|
|
256
273
|
const userAddresses = parseUserAddresses(options.userAddresses)
|
|
257
274
|
if (
|
|
258
275
|
Object.entries(userAddresses).some(([chainId, address]) => invalidUserAddress(chainId, address))
|
|
259
276
|
)
|
|
260
|
-
throw new
|
|
277
|
+
throw new RoutesProvider.ProviderConfigurationError()
|
|
261
278
|
|
|
262
279
|
const endpoint = quoteEndpoint(options)
|
|
263
280
|
const fetch = options.fetch ?? defaultFetch
|
|
264
281
|
const now = options.now ?? (() => new Date())
|
|
282
|
+
|
|
283
|
+
async function listDepositAddressRequests(
|
|
284
|
+
parameters: RoutesProvider.listDepositAddressRequests.Parameters,
|
|
285
|
+
signal: AbortSignal,
|
|
286
|
+
): Promise<RoutesProvider.listDepositAddressRequests.ReturnType> {
|
|
287
|
+
const requestUrl = requestsEndpoint(options)
|
|
288
|
+
if (parameters.requestId) requestUrl.searchParams.set('id', parameters.requestId)
|
|
289
|
+
else requestUrl.searchParams.set('depositAddress', parameters.address)
|
|
290
|
+
requestUrl.searchParams.set('includeChildRequests', 'true')
|
|
291
|
+
requestUrl.searchParams.set('limit', '50')
|
|
292
|
+
requestUrl.searchParams.set('sortBy', 'updatedAt')
|
|
293
|
+
requestUrl.searchParams.set('sortDirection', 'desc')
|
|
294
|
+
if (parameters.continuation)
|
|
295
|
+
requestUrl.searchParams.set('continuation', parameters.continuation)
|
|
296
|
+
const response = await RoutesProvider.requestJson(requestUrl, {
|
|
297
|
+
fetch,
|
|
298
|
+
headers: options.apiKey ? { 'x-api-key': options.apiKey } : undefined,
|
|
299
|
+
method: 'GET',
|
|
300
|
+
signal,
|
|
301
|
+
})
|
|
302
|
+
const parsed = parseDepositAddressRequests(response)
|
|
303
|
+
return {
|
|
304
|
+
...(parsed.continuation ? { continuation: parsed.continuation } : {}),
|
|
305
|
+
requests: parsed.requests.map((request) => {
|
|
306
|
+
const outputTransactionHashes =
|
|
307
|
+
request.data?.outTxs?.flatMap((transaction) =>
|
|
308
|
+
transaction.txHash ? [transaction.txHash] : [],
|
|
309
|
+
) ?? []
|
|
310
|
+
const subsidy = (() => {
|
|
311
|
+
const payment = request.data?.feeSponsorship?.actual?.sponsorPayment
|
|
312
|
+
if (!payment || BigInt(payment.amount) === 0n) return undefined
|
|
313
|
+
const chainId = `eip155:${payment.chainId}/`
|
|
314
|
+
const token = [parameters.destinationToken, parameters.sourceToken].find(
|
|
315
|
+
(token) =>
|
|
316
|
+
token?.tokenKey.startsWith(chainId) &&
|
|
317
|
+
token.address.toLowerCase() === payment.address.toLowerCase(),
|
|
318
|
+
)
|
|
319
|
+
if (!token) throw new RoutesProvider.ProviderPayloadError()
|
|
320
|
+
return {
|
|
321
|
+
amount: Value.tokenAmount({
|
|
322
|
+
baseUnits: payment.amount,
|
|
323
|
+
currency: token.currency,
|
|
324
|
+
decimals: token.decimals,
|
|
325
|
+
}),
|
|
326
|
+
provider: 'relay',
|
|
327
|
+
token,
|
|
328
|
+
}
|
|
329
|
+
})()
|
|
330
|
+
const refunded = (relayRefundStatuses as readonly string[]).includes(request.status)
|
|
331
|
+
const correlation = (() => {
|
|
332
|
+
const { protocol } = request
|
|
333
|
+
if (!protocol) return undefined
|
|
334
|
+
const relay = {
|
|
335
|
+
...(protocol.deposit?.origin?.depositor
|
|
336
|
+
? { depositor: protocol.deposit.origin.depositor }
|
|
337
|
+
: {}),
|
|
338
|
+
...(protocol.deposit?.origin?.depository
|
|
339
|
+
? { depository: protocol.deposit.origin.depository }
|
|
340
|
+
: {}),
|
|
341
|
+
...(protocol.orderId ? { orderId: protocol.orderId } : {}),
|
|
342
|
+
...(protocol.solver?.address ? { solver: protocol.solver.address } : {}),
|
|
343
|
+
}
|
|
344
|
+
if (Object.keys(relay).length === 0) return undefined
|
|
345
|
+
return schema.RequestCorrelation.parse({ relay })
|
|
346
|
+
})()
|
|
347
|
+
return {
|
|
348
|
+
createdAt: new Date(request.createdAt).toISOString(),
|
|
349
|
+
destinationTransactionHashes: refunded ? [] : outputTransactionHashes,
|
|
350
|
+
id: request.id,
|
|
351
|
+
...(correlation ? { providerState: correlation } : {}),
|
|
352
|
+
...(refunded && request.refundCurrencyData
|
|
353
|
+
? { refundAmountExpected: request.refundCurrencyData.amount }
|
|
354
|
+
: {}),
|
|
355
|
+
refundTransactionHashes: refunded ? outputTransactionHashes : [],
|
|
356
|
+
sourceTransactionHashes: request.depositAddress?.depositTxHash
|
|
357
|
+
? [request.depositAddress.depositTxHash]
|
|
358
|
+
: [],
|
|
359
|
+
...(subsidy ? { subsidy } : {}),
|
|
360
|
+
status: request.status,
|
|
361
|
+
updatedAt: new Date(request.updatedAt).toISOString(),
|
|
362
|
+
}
|
|
363
|
+
}),
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
265
367
|
const observeDepositAddressRequest = options.observation
|
|
266
368
|
? createDepositAddressObserver({
|
|
267
369
|
...options.observation,
|
|
268
370
|
...(options.apiKey ? { apiKey: options.apiKey } : {}),
|
|
269
371
|
...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),
|
|
270
372
|
fetch,
|
|
373
|
+
listDepositAddressRequests,
|
|
271
374
|
now,
|
|
272
375
|
})
|
|
273
376
|
: undefined
|
|
274
377
|
const webhook = (() => {
|
|
275
378
|
if (!options.apiKey || !options.webhook) return undefined
|
|
276
379
|
const { apiKey, webhook } = options
|
|
277
|
-
const verify = (input:
|
|
380
|
+
const verify = (input: RoutesProvider.Webhook.verify.Parameters) =>
|
|
278
381
|
verifyWebhook(webhookOptions(input, apiKey))
|
|
279
382
|
return {
|
|
280
|
-
async receive(input:
|
|
383
|
+
async receive(input: RoutesProvider.Webhook.receive.Parameters) {
|
|
281
384
|
const receivedAt = now().toISOString()
|
|
282
385
|
const hint = (() => {
|
|
283
386
|
try {
|
|
284
387
|
return verify(input)
|
|
285
388
|
} catch (cause) {
|
|
286
389
|
webhook.onResult?.(
|
|
287
|
-
cause instanceof
|
|
390
|
+
cause instanceof RoutesProvider.WebhookAuthenticationError
|
|
288
391
|
? 'authentication_failed'
|
|
289
392
|
: 'payload_invalid',
|
|
290
393
|
)
|
|
@@ -296,7 +399,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
296
399
|
return { type: 'ignored' as const }
|
|
297
400
|
}
|
|
298
401
|
const database = Db.get(webhook.db)
|
|
299
|
-
const address = await
|
|
402
|
+
const address = await RoutesDepositAddresses.getByProviderAddress(database, {
|
|
300
403
|
address: hint.address,
|
|
301
404
|
providerId: 'relay',
|
|
302
405
|
})
|
|
@@ -305,7 +408,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
305
408
|
return { type: 'unknown_address' as const }
|
|
306
409
|
}
|
|
307
410
|
if (hint.requestId)
|
|
308
|
-
await
|
|
411
|
+
await RoutesDepositRequestObservations.observeWebhook(database, {
|
|
309
412
|
depositAddressId: address.id,
|
|
310
413
|
providerRequestId: hint.requestId,
|
|
311
414
|
receivedAt,
|
|
@@ -329,7 +432,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
329
432
|
addressId: address.id,
|
|
330
433
|
...(hint.requestId ? { requestId: hint.requestId } : {}),
|
|
331
434
|
trigger: 'webhook',
|
|
332
|
-
type: '
|
|
435
|
+
type: 'routes:deposit-address:reconcile',
|
|
333
436
|
...(webhookTiming ? { webhookTiming } : {}),
|
|
334
437
|
})
|
|
335
438
|
} catch (cause) {
|
|
@@ -343,7 +446,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
343
446
|
}
|
|
344
447
|
})()
|
|
345
448
|
|
|
346
|
-
return
|
|
449
|
+
return RoutesProvider.from({
|
|
347
450
|
id: 'relay',
|
|
348
451
|
name: 'Relay',
|
|
349
452
|
...(webhook ? { webhook } : {}),
|
|
@@ -357,10 +460,10 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
357
460
|
sourceToken: candidate.sourceToken,
|
|
358
461
|
}))
|
|
359
462
|
)
|
|
360
|
-
throw new
|
|
463
|
+
throw new RoutesProvider.ProviderUnavailableError()
|
|
361
464
|
const quote = await (async () => {
|
|
362
465
|
try {
|
|
363
|
-
return await
|
|
466
|
+
return await RoutesProvider.requestJson(endpoint, {
|
|
364
467
|
body: {
|
|
365
468
|
amount,
|
|
366
469
|
destinationChainId: relayChainId(candidate.route.destination.chain),
|
|
@@ -380,19 +483,19 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
380
483
|
signal,
|
|
381
484
|
})
|
|
382
485
|
} catch (cause) {
|
|
383
|
-
if (
|
|
384
|
-
throw new
|
|
486
|
+
if (RoutesProvider.unavailable(cause, ['NO_QUOTES', 'NO_ROUTE', 'UNSUPPORTED_ROUTE']))
|
|
487
|
+
throw new RoutesProvider.ProviderUnavailableError()
|
|
385
488
|
throw cause
|
|
386
489
|
}
|
|
387
490
|
})()
|
|
388
491
|
const parsed = schema.DepositAddress.safeParse(quote)
|
|
389
|
-
if (!parsed.success) throw new
|
|
492
|
+
if (!parsed.success) throw new RoutesProvider.ProviderPayloadError()
|
|
390
493
|
if (parsed.data.details.currencyIn.amount !== amount)
|
|
391
|
-
throw new
|
|
494
|
+
throw new RoutesProvider.ProviderPayloadError()
|
|
392
495
|
const step = parsed.data.steps.find(
|
|
393
496
|
(candidate) => candidate.depositAddress && candidate.requestId,
|
|
394
497
|
)
|
|
395
|
-
if (!step?.depositAddress || !step.requestId) throw new
|
|
498
|
+
if (!step?.depositAddress || !step.requestId) throw new RoutesProvider.ProviderPayloadError()
|
|
396
499
|
const checkEndpoint = step.items?.find((item) => item.check)?.check?.endpoint
|
|
397
500
|
const providerFee = parsed.data.fees?.relayer?.amount
|
|
398
501
|
return {
|
|
@@ -411,7 +514,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
411
514
|
async getQuote({ candidate, route }, signal) {
|
|
412
515
|
const userAddress = userAddresses[route.source.chain.id]
|
|
413
516
|
if (userAddress === undefined)
|
|
414
|
-
return
|
|
517
|
+
return RoutesProvider.unavailableResult({
|
|
415
518
|
detail: 'relay:quote-v2',
|
|
416
519
|
message: 'QUOTE_USER_NOT_CONFIGURED',
|
|
417
520
|
now: now(),
|
|
@@ -419,7 +522,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
419
522
|
})
|
|
420
523
|
const recipientAddress = userAddresses[route.destination.chain.id]
|
|
421
524
|
if (recipientAddress === undefined)
|
|
422
|
-
return
|
|
525
|
+
return RoutesProvider.unavailableResult({
|
|
423
526
|
detail: 'relay:quote-v2',
|
|
424
527
|
message: 'QUOTE_RECIPIENT_NOT_CONFIGURED',
|
|
425
528
|
now: now(),
|
|
@@ -428,7 +531,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
428
531
|
const destinationChainId = relayChainId(route.destination.chain)
|
|
429
532
|
const sourceChainId = relayChainId(route.source.chain)
|
|
430
533
|
try {
|
|
431
|
-
const quote = await
|
|
534
|
+
const quote = await RoutesProvider.requestJson(endpoint, {
|
|
432
535
|
body: {
|
|
433
536
|
amount: candidate.sourceAmount.amount,
|
|
434
537
|
destinationChainId,
|
|
@@ -445,7 +548,7 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
445
548
|
signal,
|
|
446
549
|
})
|
|
447
550
|
const parsed = schema.Quote.safeParse(quote)
|
|
448
|
-
if (!parsed.success) throw new
|
|
551
|
+
if (!parsed.success) throw new RoutesProvider.ProviderPayloadError()
|
|
449
552
|
const destinationAmount = parsed.data.details?.currencyOut?.amount
|
|
450
553
|
const status = destinationAmount
|
|
451
554
|
? { status: 'available' as const, tier: 'liquid' as const }
|
|
@@ -464,13 +567,13 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
464
567
|
status: status.status,
|
|
465
568
|
}
|
|
466
569
|
} catch (cause) {
|
|
467
|
-
const unavailable =
|
|
570
|
+
const unavailable = RoutesProvider.unavailable(cause, [
|
|
468
571
|
'NO_QUOTES',
|
|
469
572
|
'NO_ROUTE',
|
|
470
573
|
'UNSUPPORTED_ROUTE',
|
|
471
574
|
])
|
|
472
575
|
if (!unavailable) throw cause
|
|
473
|
-
return
|
|
576
|
+
return RoutesProvider.unavailableResult({
|
|
474
577
|
detail: 'relay:quote-v2',
|
|
475
578
|
message: unavailable,
|
|
476
579
|
now: now(),
|
|
@@ -478,75 +581,21 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
478
581
|
})
|
|
479
582
|
}
|
|
480
583
|
},
|
|
481
|
-
|
|
482
|
-
const requestUrl = requestsEndpoint(options)
|
|
483
|
-
if (requestId) requestUrl.searchParams.set('id', requestId)
|
|
484
|
-
else requestUrl.searchParams.set('depositAddress', address)
|
|
485
|
-
requestUrl.searchParams.set('includeChildRequests', 'true')
|
|
486
|
-
requestUrl.searchParams.set('limit', '50')
|
|
487
|
-
requestUrl.searchParams.set('sortBy', 'updatedAt')
|
|
488
|
-
requestUrl.searchParams.set('sortDirection', 'desc')
|
|
489
|
-
if (continuation) requestUrl.searchParams.set('continuation', continuation)
|
|
490
|
-
const response = await FundingProvider.requestJson(requestUrl, {
|
|
491
|
-
fetch,
|
|
492
|
-
headers: options.apiKey ? { 'x-api-key': options.apiKey } : undefined,
|
|
493
|
-
method: 'GET',
|
|
494
|
-
signal,
|
|
495
|
-
})
|
|
496
|
-
const parsed = parseDepositAddressRequests(response)
|
|
497
|
-
return {
|
|
498
|
-
...(parsed.continuation ? { continuation: parsed.continuation } : {}),
|
|
499
|
-
requests: parsed.requests.map((request) => {
|
|
500
|
-
const outputTransactionHashes = request.data?.outTxs?.map((tx) => tx.txHash) ?? []
|
|
501
|
-
const refunded = (relayRefundStatuses as readonly string[]).includes(request.status)
|
|
502
|
-
const correlation = (() => {
|
|
503
|
-
const { protocol } = request
|
|
504
|
-
if (!protocol) return undefined
|
|
505
|
-
const relay = {
|
|
506
|
-
...(protocol.deposit?.origin?.depositor
|
|
507
|
-
? { depositor: protocol.deposit.origin.depositor }
|
|
508
|
-
: {}),
|
|
509
|
-
...(protocol.deposit?.origin?.depository
|
|
510
|
-
? { depository: protocol.deposit.origin.depository }
|
|
511
|
-
: {}),
|
|
512
|
-
...(protocol.orderId ? { orderId: protocol.orderId } : {}),
|
|
513
|
-
...(protocol.solver?.address ? { solver: protocol.solver.address } : {}),
|
|
514
|
-
}
|
|
515
|
-
if (Object.keys(relay).length === 0) return undefined
|
|
516
|
-
return schema.RequestCorrelation.parse({ relay })
|
|
517
|
-
})()
|
|
518
|
-
return {
|
|
519
|
-
createdAt: new Date(request.createdAt).toISOString(),
|
|
520
|
-
destinationTransactionHashes: refunded ? [] : outputTransactionHashes,
|
|
521
|
-
id: request.id,
|
|
522
|
-
...(correlation ? { providerState: correlation } : {}),
|
|
523
|
-
...(refunded && request.refundCurrencyData
|
|
524
|
-
? { refundAmountExpected: request.refundCurrencyData.amount }
|
|
525
|
-
: {}),
|
|
526
|
-
refundTransactionHashes: refunded ? outputTransactionHashes : [],
|
|
527
|
-
sourceTransactionHashes: request.depositAddress?.depositTxHash
|
|
528
|
-
? [request.depositAddress.depositTxHash]
|
|
529
|
-
: [],
|
|
530
|
-
status: request.status,
|
|
531
|
-
updatedAt: new Date(request.updatedAt).toISOString(),
|
|
532
|
-
}
|
|
533
|
-
}),
|
|
534
|
-
}
|
|
535
|
-
},
|
|
584
|
+
listDepositAddressRequests,
|
|
536
585
|
...(observeDepositAddressRequest ? { observeDepositAddressRequest } : {}),
|
|
537
586
|
async prepareTransfer({ candidate, method, mode, recipient, sender, slippageBps }, signal) {
|
|
538
587
|
// Catalog capabilities gate deposit addresses and exact destination
|
|
539
588
|
// off this adapter; refuse them defensively if one slips through.
|
|
540
589
|
if (method !== 'transaction' || mode !== 'exactSource')
|
|
541
|
-
throw new
|
|
590
|
+
throw new RoutesProvider.ProviderConfigurationError()
|
|
542
591
|
const quote = await (async () => {
|
|
543
592
|
try {
|
|
544
|
-
return await
|
|
593
|
+
return await RoutesProvider.requestJson(endpoint, {
|
|
545
594
|
body: {
|
|
546
595
|
amount: candidate.sourceAmount.amount,
|
|
547
|
-
destinationChainId: Number(
|
|
596
|
+
destinationChainId: Number(RoutesChain.eip155Id(candidate.route.destination.chain)),
|
|
548
597
|
destinationCurrency: candidate.destinationToken.address,
|
|
549
|
-
originChainId: Number(
|
|
598
|
+
originChainId: Number(RoutesChain.eip155Id(candidate.route.source.chain)),
|
|
550
599
|
originCurrency: candidate.sourceToken.address,
|
|
551
600
|
recipient,
|
|
552
601
|
...(slippageBps !== undefined ? { slippageTolerance: String(slippageBps) } : {}),
|
|
@@ -559,31 +608,31 @@ export function relay(options: relay.Options = {}): FundingProvider.Provider<'re
|
|
|
559
608
|
signal,
|
|
560
609
|
})
|
|
561
610
|
} catch (cause) {
|
|
562
|
-
if (
|
|
563
|
-
throw new
|
|
611
|
+
if (RoutesProvider.unavailable(cause, ['NO_QUOTES', 'NO_ROUTE', 'UNSUPPORTED_ROUTE']))
|
|
612
|
+
throw new RoutesProvider.ProviderUnavailableError()
|
|
564
613
|
throw cause
|
|
565
614
|
}
|
|
566
615
|
})()
|
|
567
616
|
const parsed = schema.PreparedQuote.safeParse(quote)
|
|
568
|
-
if (!parsed.success) throw new
|
|
617
|
+
if (!parsed.success) throw new RoutesProvider.ProviderPayloadError()
|
|
569
618
|
const { details, fees, steps } = parsed.data
|
|
570
619
|
// The quoted input must match the request exactly; a drifted amount
|
|
571
620
|
// would desynchronize the stored terms from the prepared calls.
|
|
572
621
|
if (details.currencyIn.amount !== candidate.sourceAmount.amount)
|
|
573
|
-
throw new
|
|
622
|
+
throw new RoutesProvider.ProviderPayloadError()
|
|
574
623
|
|
|
575
624
|
const items = steps
|
|
576
625
|
.filter((step) => step.kind === 'transaction')
|
|
577
626
|
.flatMap((step) => step.items ?? [])
|
|
578
627
|
const requestId = steps.find((step) => step.requestId)?.requestId
|
|
579
|
-
if (items.length === 0 || !requestId) throw new
|
|
580
|
-
const sourceChainId = Number(
|
|
628
|
+
if (items.length === 0 || !requestId) throw new RoutesProvider.ProviderPayloadError()
|
|
629
|
+
const sourceChainId = Number(RoutesChain.eip155Id(candidate.route.source.chain))
|
|
581
630
|
for (const item of items)
|
|
582
631
|
if (
|
|
583
632
|
item.data.chainId !== sourceChainId ||
|
|
584
633
|
item.data.from.toLowerCase() !== sender.toLowerCase()
|
|
585
634
|
)
|
|
586
|
-
throw new
|
|
635
|
+
throw new RoutesProvider.ProviderPayloadError()
|
|
587
636
|
|
|
588
637
|
const checkEndpoint = items.find((item) => item.check)?.check?.endpoint
|
|
589
638
|
// Relay's `relayer` fee is the solver's total source-side charge (gas
|
|
@@ -623,7 +672,7 @@ export declare namespace relay {
|
|
|
623
672
|
/** Override for tests or Relay test environments. */
|
|
624
673
|
baseUrl?: string | undefined
|
|
625
674
|
/** Fetch implementation override for tests. */
|
|
626
|
-
fetch?:
|
|
675
|
+
fetch?: RoutesProvider.Fetch | undefined
|
|
627
676
|
/** Clock override for deterministic tests. */
|
|
628
677
|
now?: (() => Date) | undefined
|
|
629
678
|
/** EVM chain evidence used to accelerate authenticated provider delivery. */
|
|
@@ -631,14 +680,14 @@ export declare namespace relay {
|
|
|
631
680
|
/** Deposit subsidy policy enabled for this integration. */
|
|
632
681
|
subsidies?: Subsidy.Policy | undefined
|
|
633
682
|
/** Optional source and destination quote wallets keyed by CAIP-2 chain id. */
|
|
634
|
-
userAddresses?: Readonly<Partial<Record<
|
|
683
|
+
userAddresses?: Readonly<Partial<Record<RoutesChain.Id, string>>> | string | undefined
|
|
635
684
|
/** Tempo infrastructure used to receive authenticated Relay webhooks. */
|
|
636
685
|
webhook?: Webhook | undefined
|
|
637
686
|
}
|
|
638
687
|
|
|
639
688
|
/** Chain evidence configuration for Relay delivery observation. */
|
|
640
689
|
type Observation = {
|
|
641
|
-
/** Authoritative
|
|
690
|
+
/** Authoritative routes database or per-request database factory. */
|
|
642
691
|
db: Db.Source
|
|
643
692
|
/** Tempo chain that receives a shared RPC URL override. */
|
|
644
693
|
defaultChainId?: Viem.ChainId | undefined
|
|
@@ -648,10 +697,10 @@ export declare namespace relay {
|
|
|
648
697
|
|
|
649
698
|
/** Authenticated Relay webhook integration attached to a provider instance. */
|
|
650
699
|
type Webhook = {
|
|
651
|
-
/** Authoritative
|
|
700
|
+
/** Authoritative routes database or per-request database factory. */
|
|
652
701
|
db: Db.Source
|
|
653
702
|
/** Enqueues one bounded reconciliation hint. */
|
|
654
|
-
dispatch: (message:
|
|
703
|
+
dispatch: (message: RoutesProvider.Webhook.receive.Dispatchable) => Promise<void>
|
|
655
704
|
/** Observes one bounded webhook disposition. */
|
|
656
705
|
onResult?: ((result: WebhookResult) => void) | undefined
|
|
657
706
|
}
|
|
@@ -675,13 +724,13 @@ function parseUserAddresses(value: relay.Options['userAddresses']) {
|
|
|
675
724
|
try {
|
|
676
725
|
return JSON.parse(value) as unknown
|
|
677
726
|
} catch {
|
|
678
|
-
throw new
|
|
727
|
+
throw new RoutesProvider.ProviderConfigurationError()
|
|
679
728
|
}
|
|
680
729
|
})()
|
|
681
730
|
: value
|
|
682
731
|
if (!addresses || typeof addresses !== 'object' || Array.isArray(addresses))
|
|
683
|
-
throw new
|
|
684
|
-
return addresses as Readonly<Partial<Record<
|
|
732
|
+
throw new RoutesProvider.ProviderConfigurationError()
|
|
733
|
+
return addresses as Readonly<Partial<Record<RoutesChain.Id, string>>>
|
|
685
734
|
}
|
|
686
735
|
|
|
687
736
|
function invalidUserAddress(chainId: string, address: unknown) {
|
|
@@ -709,7 +758,8 @@ function invalidUserAddress(chainId: string, address: unknown) {
|
|
|
709
758
|
type DepositAddressObserverOptions = relay.Observation & {
|
|
710
759
|
apiKey?: string | undefined
|
|
711
760
|
baseUrl?: string | undefined
|
|
712
|
-
fetch:
|
|
761
|
+
fetch: RoutesProvider.Fetch
|
|
762
|
+
listDepositAddressRequests: NonNullable<RoutesProvider.Provider['listDepositAddressRequests']>
|
|
713
763
|
now: () => Date
|
|
714
764
|
}
|
|
715
765
|
|
|
@@ -718,7 +768,7 @@ type RelayDeliveryObservation = z.output<typeof schema.DeliveryObservation>['rel
|
|
|
718
768
|
|
|
719
769
|
function createDepositAddressObserver(
|
|
720
770
|
options: DepositAddressObserverOptions,
|
|
721
|
-
): NonNullable<
|
|
771
|
+
): NonNullable<RoutesProvider.Provider['observeDepositAddressRequest']> {
|
|
722
772
|
let chainsExpiresAt = 0
|
|
723
773
|
let chainsPromise: Promise<readonly RelayChain[]> | undefined
|
|
724
774
|
let urlsExpiresAt = 0
|
|
@@ -726,7 +776,7 @@ function createDepositAddressObserver(
|
|
|
726
776
|
const getChains = (signal: AbortSignal) => {
|
|
727
777
|
if (chainsPromise && options.now().getTime() < chainsExpiresAt) return chainsPromise
|
|
728
778
|
chainsExpiresAt = options.now().getTime() + relayChainsCacheTtlMs
|
|
729
|
-
chainsPromise =
|
|
779
|
+
chainsPromise = RoutesProvider.requestJson(chainsEndpoint(options), {
|
|
730
780
|
fetch: options.fetch,
|
|
731
781
|
headers: options.apiKey ? { 'x-api-key': options.apiKey } : undefined,
|
|
732
782
|
signal,
|
|
@@ -742,7 +792,7 @@ function createDepositAddressObserver(
|
|
|
742
792
|
const getUrls = () => {
|
|
743
793
|
if (urlsPromise && options.now().getTime() < urlsExpiresAt) return urlsPromise
|
|
744
794
|
urlsExpiresAt = options.now().getTime() + relayChainsCacheTtlMs
|
|
745
|
-
urlsPromise =
|
|
795
|
+
urlsPromise = RoutesCatalog.read(Db.get(options.db))
|
|
746
796
|
.then(
|
|
747
797
|
(catalog) =>
|
|
748
798
|
new Map<string, readonly string[]>(
|
|
@@ -794,8 +844,10 @@ function createDepositAddressObserver(
|
|
|
794
844
|
const solvers = destinationChain?.solverAddresses
|
|
795
845
|
if (
|
|
796
846
|
!depository ||
|
|
847
|
+
!Address.validate(depository, { strict: false }) ||
|
|
797
848
|
!solvers ||
|
|
798
849
|
solvers.length === 0 ||
|
|
850
|
+
solvers.some((solver) => !Address.validate(solver, { strict: false })) ||
|
|
799
851
|
!sourceUrls?.length ||
|
|
800
852
|
!destinationUrls?.length
|
|
801
853
|
)
|
|
@@ -820,7 +872,7 @@ function createDepositAddressObserver(
|
|
|
820
872
|
const stored = schema.DeliveryObservation.safeParse(parameters.providerState)
|
|
821
873
|
const sourceObservation = await (async () => {
|
|
822
874
|
if (stored.success) return stored.data.relay
|
|
823
|
-
const sourceClient =
|
|
875
|
+
const sourceClient = Viem.createEvmClient({ fetch: options.fetch, urls: sourceUrls })
|
|
824
876
|
const sourceReceipt = await getTransactionReceipt(sourceClient, {
|
|
825
877
|
hash: parameters.source.transactionHash as Hex.Hex,
|
|
826
878
|
})
|
|
@@ -868,7 +920,61 @@ function createDepositAddressObserver(
|
|
|
868
920
|
})()
|
|
869
921
|
if (!sourceObservation) return { type: 'pending' }
|
|
870
922
|
|
|
871
|
-
const
|
|
923
|
+
const indexedRequest = await (async () => {
|
|
924
|
+
let continuation: string | undefined
|
|
925
|
+
try {
|
|
926
|
+
for (let page = 0; page < relayRequestPageLimit; page++) {
|
|
927
|
+
const result = parameters.request
|
|
928
|
+
? { continuation: undefined, requests: [parameters.request] }
|
|
929
|
+
: await options.listDepositAddressRequests(
|
|
930
|
+
{
|
|
931
|
+
address: parameters.address,
|
|
932
|
+
...(continuation ? { continuation } : {}),
|
|
933
|
+
destinationToken: parameters.destinationToken,
|
|
934
|
+
sourceToken: parameters.sourceToken,
|
|
935
|
+
},
|
|
936
|
+
signal,
|
|
937
|
+
)
|
|
938
|
+
const request = result.requests.find((request) => {
|
|
939
|
+
if (!(deliveryObservationStatuses as readonly string[]).includes(request.status))
|
|
940
|
+
return false
|
|
941
|
+
const parsed = schema.RequestCorrelation.safeParse(request.providerState)
|
|
942
|
+
return Boolean(
|
|
943
|
+
parsed.success &&
|
|
944
|
+
parsed.data.relay.orderId &&
|
|
945
|
+
Hex.isEqual(
|
|
946
|
+
parsed.data.relay.orderId as Hex.Hex,
|
|
947
|
+
sourceObservation.orderId as Hex.Hex,
|
|
948
|
+
),
|
|
949
|
+
)
|
|
950
|
+
})
|
|
951
|
+
if (request || !result.continuation) return request
|
|
952
|
+
continuation = result.continuation
|
|
953
|
+
}
|
|
954
|
+
} catch (cause) {
|
|
955
|
+
if (signal.aborted) throw cause
|
|
956
|
+
// Relay indexing is optional evidence, so preserve the onchain fallback when it is unavailable.
|
|
957
|
+
}
|
|
958
|
+
return undefined
|
|
959
|
+
})()
|
|
960
|
+
if (indexedRequest && indexedRequest.destinationTransactionHashes.length > 0)
|
|
961
|
+
return {
|
|
962
|
+
destinationTransactionHashes: indexedRequest.destinationTransactionHashes,
|
|
963
|
+
providerState: {
|
|
964
|
+
relay: {
|
|
965
|
+
...sourceObservation,
|
|
966
|
+
destinationObservedAt: options.now().toISOString(),
|
|
967
|
+
},
|
|
968
|
+
},
|
|
969
|
+
providerTransactionHashes: [
|
|
970
|
+
sourceObservation.sourceSweepTransactionHash,
|
|
971
|
+
...indexedRequest.destinationTransactionHashes,
|
|
972
|
+
],
|
|
973
|
+
...(indexedRequest.subsidy ? { subsidy: indexedRequest.subsidy } : {}),
|
|
974
|
+
type: 'verified',
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
const destinationClient = Viem.createEvmClient({ fetch: options.fetch, urls: destinationUrls })
|
|
872
978
|
const destinationHead = await getBlockNumber(destinationClient, { cacheTime: 0 })
|
|
873
979
|
const destinationLogs = await getLogs(destinationClient, {
|
|
874
980
|
address: parameters.destinationToken.address as Address.Address,
|
|
@@ -1001,24 +1107,13 @@ function decodeEvent<const event extends AbiEvent.AbiEvent>(
|
|
|
1001
1107
|
}
|
|
1002
1108
|
}
|
|
1003
1109
|
|
|
1004
|
-
function jsonRpcClient(options: { fetch: FundingProvider.Fetch; urls: readonly string[] }) {
|
|
1005
|
-
return createClient({
|
|
1006
|
-
transport: fallback(
|
|
1007
|
-
options.urls.map((url) => {
|
|
1008
|
-
const transport = RpcTransport.fromHttp(url, { fetchFn: options.fetch })
|
|
1009
|
-
return custom(transport, { retryCount: 0 })
|
|
1010
|
-
}),
|
|
1011
|
-
),
|
|
1012
|
-
})
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
1110
|
function minimum(left: bigint, right: bigint): bigint {
|
|
1016
1111
|
return left < right ? left : right
|
|
1017
1112
|
}
|
|
1018
1113
|
|
|
1019
1114
|
function relayEvmChain(
|
|
1020
1115
|
chains: readonly RelayChain[],
|
|
1021
|
-
chain:
|
|
1116
|
+
chain: RoutesProvider.ChainRef,
|
|
1022
1117
|
): RelayChain | undefined {
|
|
1023
1118
|
if (chain.kind !== 'evm') return undefined
|
|
1024
1119
|
const match = /^eip155:(\d+)$/.exec(chain.id)
|
|
@@ -1033,7 +1128,7 @@ type VerifyWebhookOptions = {
|
|
|
1033
1128
|
timestamp: string
|
|
1034
1129
|
}
|
|
1035
1130
|
|
|
1036
|
-
function verifyWebhook(options: VerifyWebhookOptions):
|
|
1131
|
+
function verifyWebhook(options: VerifyWebhookOptions): RoutesProvider.Webhook.verify.ReturnType {
|
|
1037
1132
|
const timestamp = Number(options.timestamp)
|
|
1038
1133
|
if (!Number.isSafeInteger(timestamp)) throw new WebhookSignatureError()
|
|
1039
1134
|
if (Math.abs(Date.now() - timestamp) > webhookSignatureToleranceMs)
|
|
@@ -1064,7 +1159,7 @@ function verifyWebhook(options: VerifyWebhookOptions): FundingProvider.Webhook.v
|
|
|
1064
1159
|
}
|
|
1065
1160
|
|
|
1066
1161
|
function webhookOptions(
|
|
1067
|
-
input:
|
|
1162
|
+
input: RoutesProvider.Webhook.verify.Parameters,
|
|
1068
1163
|
secret: string,
|
|
1069
1164
|
): VerifyWebhookOptions {
|
|
1070
1165
|
const signature = input.headers.get('x-signature-sha256')
|
|
@@ -1105,20 +1200,20 @@ function webhookTimestamp(value: number): string {
|
|
|
1105
1200
|
}
|
|
1106
1201
|
}
|
|
1107
1202
|
|
|
1108
|
-
function relayChainId(chain:
|
|
1109
|
-
if (chain.id.startsWith('eip155:')) return Number(
|
|
1203
|
+
function relayChainId(chain: RoutesProvider.Chain): number {
|
|
1204
|
+
if (chain.id.startsWith('eip155:')) return Number(RoutesChain.eip155Id(chain))
|
|
1110
1205
|
// Relay uses a numeric chain ID for Solana instead of its CAIP-2 reference.
|
|
1111
1206
|
if (chain.id === 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp') return 792_703_809
|
|
1112
1207
|
if (chain.id.startsWith('tron:')) return Number(chain.id.slice('tron:'.length))
|
|
1113
|
-
throw new
|
|
1208
|
+
throw new RoutesProvider.ProviderConfigurationError()
|
|
1114
1209
|
}
|
|
1115
1210
|
|
|
1116
1211
|
/** Relay webhook signature is missing, stale, or invalid. */
|
|
1117
|
-
export class WebhookSignatureError extends
|
|
1118
|
-
override name = '
|
|
1212
|
+
export class WebhookSignatureError extends RoutesProvider.WebhookAuthenticationError {
|
|
1213
|
+
override name = 'Routes.Provider.Relay.WebhookSignatureError'
|
|
1119
1214
|
}
|
|
1120
1215
|
|
|
1121
1216
|
/** Relay webhook body does not match the expected status event shape. */
|
|
1122
|
-
export class WebhookPayloadError extends
|
|
1123
|
-
override name = '
|
|
1217
|
+
export class WebhookPayloadError extends RoutesProvider.WebhookPayloadError {
|
|
1218
|
+
override name = 'Routes.Provider.Relay.WebhookPayloadError'
|
|
1124
1219
|
}
|