tapimo 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/dist/ApiKey.js +1 -1
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +95 -14
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +360 -49
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +12457 -10365
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +300 -22
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +2 -1
- package/dist/Assets.js.map +1 -1
- package/dist/Handler.d.ts +0 -1
- package/dist/Handler.d.ts.map +1 -1
- package/dist/Handler.js +0 -1
- package/dist/Handler.js.map +1 -1
- package/dist/Scope.d.ts +13 -5
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +16 -5
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.js +1 -1
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +3057 -549
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +26 -5
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +159 -7
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +95 -43
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +1398 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
- package/dist/admin/apps/earn-vaults.js +463 -7
- package/dist/admin/apps/earn-vaults.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +267 -15
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/organizations.js +241 -25
- package/dist/admin/apps/organizations.js.map +1 -1
- package/dist/admin/apps/routes-support.d.ts +95 -0
- package/dist/admin/apps/routes-support.d.ts.map +1 -0
- package/dist/admin/apps/routes-support.js +151 -0
- package/dist/admin/apps/routes-support.js.map +1 -0
- package/dist/admin/apps/routes.d.ts +2764 -0
- package/dist/admin/apps/routes.d.ts.map +1 -0
- package/dist/admin/apps/routes.js +728 -0
- package/dist/admin/apps/routes.js.map +1 -0
- package/dist/admin/apps/subsidies.d.ts +501 -0
- package/dist/admin/apps/subsidies.d.ts.map +1 -0
- package/dist/admin/apps/subsidies.js +384 -0
- package/dist/admin/apps/subsidies.js.map +1 -0
- package/dist/admin/apps/verified-tokens.d.ts +88 -88
- package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.js +3 -3
- package/dist/admin/apps/verified-tokens.js.map +1 -1
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +129 -69
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +5 -2
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +31 -1
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +2 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +10 -1
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/analytics/tables/routesLifecycleIntervals.d.ts +72 -0
- package/dist/analytics/tables/routesLifecycleIntervals.d.ts.map +1 -0
- package/dist/analytics/tables/routesLifecycleIntervals.js +56 -0
- package/dist/analytics/tables/routesLifecycleIntervals.js.map +1 -0
- package/dist/apps/Zones.d.ts +21 -12526
- package/dist/apps/Zones.d.ts.map +1 -1
- package/dist/apps/Zones.js +37 -5
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +3971 -2595
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +76 -21
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +364 -34
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +495 -190
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +72 -0
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +37 -37
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +47 -21
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/earn.d.ts +1450 -337
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +1226 -144
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +5 -0
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +31 -19
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +125 -0
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +83 -27
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +507 -33
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +266 -156
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +47 -15
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +68 -11
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +2 -0
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +26 -14
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +28 -12
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +9 -7
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +30 -30
- package/dist/apps/data/routes/verified-tokens.d.ts +9 -9
- package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/verified-tokens.js +64 -20
- package/dist/apps/data/routes/verified-tokens.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +613 -176
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +291 -195
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts.map +1 -1
- package/dist/apps/data/routes/zones.js +20 -12
- package/dist/apps/data/routes/zones.js.map +1 -1
- package/dist/apps/docs/reference.js +2 -2
- package/dist/apps/docs/reference.js.map +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +1 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +3763 -3385
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +5 -14
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/Billing.d.ts +48 -7
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +204 -25
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +106 -4
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +43 -15
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +290 -4
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +274 -49
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/faucet.d.ts +6 -6
- package/dist/apps/management/routes/faucet.js +1 -1
- package/dist/apps/management/routes/faucet.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +77 -2
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +117 -13
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts +4 -4
- package/dist/apps/management/routes/me.d.ts.map +1 -1
- package/dist/apps/management/routes/me.js +6 -2
- package/dist/apps/management/routes/me.js.map +1 -1
- package/dist/apps/management/routes/members.d.ts +30 -30
- package/dist/apps/management/routes/orgs.d.ts +18 -2
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +52 -12
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +4 -4
- package/dist/apps/management/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js +6 -1
- package/dist/apps/management/routes/projects.js.map +1 -1
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +4 -1
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +24 -24
- package/dist/apps/management/routes/usage.js +21 -4
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.d.ts +2 -2
- package/dist/apps/management/routes/webhooks.d.ts +280 -214
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +58 -12
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/apps/mcp.d.ts +1 -1
- package/dist/apps/mcp.js +7 -7
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/App.js +35 -7
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts +2 -0
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +30 -1
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/apps/mpp/internal/Policy.d.ts +22 -4
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Policy.js +24 -6
- package/dist/apps/mpp/internal/Policy.js.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.d.ts +3 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.js +6 -3
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -1
- package/dist/apps/relay/App.d.ts +2 -0
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +134 -75
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +5 -3
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +209 -28
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/apps/{funding → routes}/Access.d.ts +4 -4
- package/dist/apps/routes/Access.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/Access.js +4 -4
- package/dist/apps/routes/Access.js.map +1 -0
- package/dist/apps/{funding → routes}/App.d.ts +418 -124
- package/dist/apps/{funding → routes}/App.d.ts.map +1 -1
- package/dist/apps/{funding → routes}/App.js +16 -16
- package/dist/apps/routes/App.js.map +1 -0
- package/dist/apps/routes/Inventory.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/Inventory.js +2 -2
- package/dist/apps/routes/Inventory.js.map +1 -0
- package/dist/apps/routes/index.d.ts +2 -0
- package/dist/apps/routes/index.d.ts.map +1 -0
- package/dist/apps/routes/index.js +2 -0
- package/dist/apps/routes/index.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/chains.d.ts +7 -7
- package/dist/apps/routes/routes/chains.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/chains.js +25 -25
- package/dist/apps/routes/routes/chains.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.d.ts +107 -43
- package/dist/apps/routes/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.js +497 -222
- package/dist/apps/routes/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/providers.d.ts +8 -8
- package/dist/apps/routes/routes/providers.d.ts.map +1 -0
- package/dist/apps/routes/routes/providers.js +57 -0
- package/dist/apps/routes/routes/providers.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/quotes.d.ts +19 -16
- package/dist/apps/routes/routes/quotes.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/quotes.js +55 -38
- package/dist/apps/routes/routes/quotes.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/transfers.d.ts +379 -74
- package/dist/apps/routes/routes/transfers.d.ts.map +1 -0
- package/dist/apps/routes/routes/transfers.js +1140 -0
- package/dist/apps/routes/routes/transfers.js.map +1 -0
- package/dist/cli/Cli.d.ts +30 -0
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/commands/admin.d.ts +36 -0
- package/dist/cli/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin.js +273 -0
- package/dist/cli/commands/admin.js.map +1 -1
- package/dist/cloudflare.d.ts +16 -14
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +26 -21
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +63 -21
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +1030 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +780 -133
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +575 -162
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/apiKeyAdmissionBootstraps.d.ts +4 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.d.ts.map +1 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.js +2 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.js.map +1 -0
- package/dist/db/tables/apiKeyAdmissions.d.ts +73 -0
- package/dist/db/tables/apiKeyAdmissions.d.ts.map +1 -0
- package/dist/db/tables/apiKeyAdmissions.js +142 -0
- package/dist/db/tables/apiKeyAdmissions.js.map +1 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.d.ts +4 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.d.ts.map +1 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.js +2 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.js.map +1 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts +20 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts.map +1 -0
- package/dist/db/tables/apiKeyOwnerTombstones.js +57 -0
- package/dist/db/tables/apiKeyOwnerTombstones.js.map +1 -0
- package/dist/db/tables/apiKeyRevocations.d.ts +21 -0
- package/dist/db/tables/apiKeyRevocations.d.ts.map +1 -0
- package/dist/db/tables/apiKeyRevocations.js +98 -0
- package/dist/db/tables/apiKeyRevocations.js.map +1 -0
- package/dist/db/tables/authAccounts.d.ts +47 -0
- package/dist/db/tables/authAccounts.d.ts.map +1 -0
- package/dist/db/tables/authAccounts.js +72 -0
- package/dist/db/tables/authAccounts.js.map +1 -0
- package/dist/db/tables/authSessions.d.ts +12 -0
- package/dist/db/tables/authSessions.d.ts.map +1 -0
- package/dist/db/tables/authSessions.js +2 -0
- package/dist/db/tables/authSessions.js.map +1 -0
- package/dist/db/tables/authVerifications.d.ts +12 -0
- package/dist/db/tables/authVerifications.d.ts.map +1 -0
- package/dist/db/tables/authVerifications.js +2 -0
- package/dist/db/tables/authVerifications.js.map +1 -0
- package/dist/db/tables/invitations.d.ts +17 -1
- package/dist/db/tables/invitations.d.ts.map +1 -1
- package/dist/db/tables/invitations.js +123 -43
- package/dist/db/tables/invitations.js.map +1 -1
- package/dist/db/tables/memberships.d.ts +8 -0
- package/dist/db/tables/memberships.d.ts.map +1 -1
- package/dist/db/tables/memberships.js +51 -2
- package/dist/db/tables/memberships.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +32 -10
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +110 -49
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +2 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +12 -3
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/rewardAccounts.d.ts +86 -0
- package/dist/db/tables/rewardAccounts.d.ts.map +1 -0
- package/dist/db/tables/rewardAccounts.js +88 -0
- package/dist/db/tables/rewardAccounts.js.map +1 -0
- package/dist/db/tables/rewardCampaignDistributors.d.ts +36 -0
- package/dist/db/tables/rewardCampaignDistributors.d.ts.map +1 -0
- package/dist/db/tables/rewardCampaignDistributors.js +30 -0
- package/dist/db/tables/rewardCampaignDistributors.js.map +1 -0
- package/dist/db/tables/rewardCampaigns.d.ts +171 -0
- package/dist/db/tables/rewardCampaigns.d.ts.map +1 -0
- package/dist/db/tables/rewardCampaigns.js +392 -0
- package/dist/db/tables/rewardCampaigns.js.map +1 -0
- package/dist/db/tables/rewardCredits.d.ts +53 -0
- package/dist/db/tables/rewardCredits.d.ts.map +1 -0
- package/dist/db/tables/rewardCredits.js +63 -0
- package/dist/db/tables/rewardCredits.js.map +1 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts +61 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts.map +1 -0
- package/dist/db/tables/rewardEligibilityAssociations.js +103 -0
- package/dist/db/tables/rewardEligibilityAssociations.js.map +1 -0
- package/dist/db/tables/rewardRuns.d.ts +188 -0
- package/dist/db/tables/rewardRuns.d.ts.map +1 -0
- package/dist/db/tables/rewardRuns.js +278 -0
- package/dist/db/tables/rewardRuns.js.map +1 -0
- package/dist/db/tables/rewardTransactionAttempts.d.ts +100 -0
- package/dist/db/tables/rewardTransactionAttempts.d.ts.map +1 -0
- package/dist/db/tables/rewardTransactionAttempts.js +163 -0
- package/dist/db/tables/rewardTransactionAttempts.js.map +1 -0
- package/dist/db/tables/routesCatalog.d.ts +58 -0
- package/dist/db/tables/routesCatalog.d.ts.map +1 -0
- package/dist/db/tables/{fundingCatalog.js → routesCatalog.js} +19 -19
- package/dist/db/tables/routesCatalog.js.map +1 -0
- package/dist/db/tables/routesDepositAddresses.d.ts +476 -0
- package/dist/db/tables/routesDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/routesDepositAddresses.js +587 -0
- package/dist/db/tables/routesDepositAddresses.js.map +1 -0
- package/dist/db/tables/{fundingDepositRequestObservations.d.ts → routesDepositRequestObservations.d.ts} +6 -6
- package/dist/db/tables/routesDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/{fundingDepositRequestObservations.js → routesDepositRequestObservations.js} +6 -6
- package/dist/db/tables/routesDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/{fundingDeposits.d.ts → routesDeposits.d.ts} +210 -22
- package/dist/db/tables/routesDeposits.d.ts.map +1 -0
- package/dist/db/tables/routesDeposits.js +576 -0
- package/dist/db/tables/routesDeposits.js.map +1 -0
- package/dist/db/tables/routesIdempotency.d.ts +166 -0
- package/dist/db/tables/routesIdempotency.d.ts.map +1 -0
- package/dist/db/tables/routesIdempotency.js +330 -0
- package/dist/db/tables/routesIdempotency.js.map +1 -0
- package/dist/db/tables/routesSubsidies.d.ts +27 -0
- package/dist/db/tables/routesSubsidies.d.ts.map +1 -0
- package/dist/db/tables/routesSubsidies.js +45 -0
- package/dist/db/tables/routesSubsidies.js.map +1 -0
- package/dist/db/tables/{fundingTransferEvents.d.ts → routesTransferEvents.d.ts} +3 -3
- package/dist/db/tables/routesTransferEvents.d.ts.map +1 -0
- package/dist/db/tables/{fundingTransferEvents.js → routesTransferEvents.js} +3 -3
- package/dist/db/tables/routesTransferEvents.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts +19 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.js +17 -0
- package/dist/db/tables/routesTransferSubsidies.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts +51 -0
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts.map +1 -0
- package/dist/db/tables/routesTransferSubsidyNonces.js +82 -0
- package/dist/db/tables/routesTransferSubsidyNonces.js.map +1 -0
- package/dist/db/tables/routesTransferTransactions.d.ts +77 -0
- package/dist/db/tables/routesTransferTransactions.d.ts.map +1 -0
- package/dist/db/tables/{fundingTransferTransactions.js → routesTransferTransactions.js} +31 -13
- package/dist/db/tables/routesTransferTransactions.js.map +1 -0
- package/dist/db/tables/routesTransfers.d.ts +319 -0
- package/dist/db/tables/routesTransfers.d.ts.map +1 -0
- package/dist/db/tables/routesTransfers.js +372 -0
- package/dist/db/tables/routesTransfers.js.map +1 -0
- package/dist/db/tables/sponsoredTransactions.d.ts +75 -20
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +124 -54
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/sponsorshipAttributions.d.ts +69 -0
- package/dist/db/tables/sponsorshipAttributions.d.ts.map +1 -0
- package/dist/db/tables/sponsorshipAttributions.js +77 -0
- package/dist/db/tables/sponsorshipAttributions.js.map +1 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.d.ts +22 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.d.ts.map +1 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.js +45 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.js.map +1 -0
- package/dist/db/tables/stripeCustomers.d.ts +11 -0
- package/dist/db/tables/stripeCustomers.d.ts.map +1 -1
- package/dist/db/tables/stripeCustomers.js +13 -0
- package/dist/db/tables/stripeCustomers.js.map +1 -1
- package/dist/db/tables/users.d.ts +17 -1
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +47 -2
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -1
- package/dist/db/tables/webhookQueueEvents.js +5 -1
- package/dist/db/tables/webhookQueueEvents.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +19 -11
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +45 -13
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/internal/executionError.d.ts +2 -2
- package/dist/handlers/internal/executionError.d.ts.map +1 -1
- package/dist/handlers/internal/executionError.js +1 -2
- package/dist/handlers/internal/executionError.js.map +1 -1
- package/dist/handlers/internal/multisig.d.ts +4 -232
- package/dist/handlers/internal/multisig.d.ts.map +1 -1
- package/dist/handlers/internal/multisig.js +11 -537
- package/dist/handlers/internal/multisig.js.map +1 -1
- package/dist/handlers/internal/sponsorship.d.ts +19 -8
- package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
- package/dist/handlers/internal/sponsorship.js +13 -9
- package/dist/handlers/internal/sponsorship.js.map +1 -1
- package/dist/handlers/relay.d.ts +9 -12
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +81 -85
- package/dist/handlers/relay.js.map +1 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -17
- package/dist/index.js.map +1 -1
- package/dist/internal/AssetResponse.d.ts +12 -0
- package/dist/internal/AssetResponse.d.ts.map +1 -0
- package/dist/internal/AssetResponse.js +21 -0
- package/dist/internal/AssetResponse.js.map +1 -0
- package/dist/internal/Auth.d.ts +48 -12
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +603 -175
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/BetterAuth.d.ts +1488 -0
- package/dist/internal/BetterAuth.d.ts.map +1 -0
- package/dist/internal/BetterAuth.js +253 -0
- package/dist/internal/BetterAuth.js.map +1 -0
- package/dist/internal/Cache.d.ts +2 -0
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +2 -0
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EarnRates.d.ts +26 -3
- package/dist/internal/EarnRates.d.ts.map +1 -1
- package/dist/internal/EarnRates.js +84 -19
- package/dist/internal/EarnRates.js.map +1 -1
- package/dist/internal/EarnSharePrices.d.ts +120 -0
- package/dist/internal/EarnSharePrices.d.ts.map +1 -0
- package/dist/internal/EarnSharePrices.js +179 -0
- package/dist/internal/EarnSharePrices.js.map +1 -0
- package/dist/internal/EarnVaults.d.ts +4 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -1
- package/dist/internal/EarnVaults.js +27 -10
- package/dist/internal/EarnVaults.js.map +1 -1
- package/dist/internal/Email.d.ts +37 -0
- package/dist/internal/Email.d.ts.map +1 -0
- package/dist/internal/Email.js +16 -0
- package/dist/internal/Email.js.map +1 -0
- package/dist/internal/Log.d.ts +32 -28
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +18 -11
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +3 -0
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +67 -8
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/Mpp.d.ts.map +1 -1
- package/dist/internal/Mpp.js +20 -25
- package/dist/internal/Mpp.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +26 -3
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +25 -10
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Provider.d.ts +1 -1
- package/dist/internal/Provider.d.ts.map +1 -1
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +13 -1
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Store.d.ts +16 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +59 -8
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +9 -2
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +78 -11
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Timing.d.ts +26 -0
- package/dist/internal/Timing.d.ts.map +1 -1
- package/dist/internal/Timing.js +63 -5
- package/dist/internal/Timing.js.map +1 -1
- package/dist/internal/VercelOidc.d.ts +94 -0
- package/dist/internal/VercelOidc.d.ts.map +1 -0
- package/dist/internal/VercelOidc.js +128 -0
- package/dist/internal/VercelOidc.js.map +1 -0
- package/dist/internal/VerifiedTokens.d.ts +2 -8
- package/dist/internal/VerifiedTokens.d.ts.map +1 -1
- package/dist/internal/VerifiedTokens.js +24 -24
- package/dist/internal/VerifiedTokens.js.map +1 -1
- package/dist/internal/Viem.d.ts +30 -2067
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +167 -17
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +12 -4
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +9 -3
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/ZoneRpc.d.ts +7 -0
- package/dist/internal/ZoneRpc.d.ts.map +1 -0
- package/dist/internal/ZoneRpc.js +49 -0
- package/dist/internal/ZoneRpc.js.map +1 -0
- package/dist/internal/index.d.ts +3 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +3 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/rewards/Audit.d.ts +88 -0
- package/dist/internal/rewards/Audit.d.ts.map +1 -0
- package/dist/internal/rewards/Audit.js +134 -0
- package/dist/internal/rewards/Audit.js.map +1 -0
- package/dist/internal/rewards/Campaigns.d.ts +572 -0
- package/dist/internal/rewards/Campaigns.d.ts.map +1 -0
- package/dist/internal/rewards/Campaigns.js +531 -0
- package/dist/internal/rewards/Campaigns.js.map +1 -0
- package/dist/internal/rewards/Credits.d.ts +76 -0
- package/dist/internal/rewards/Credits.d.ts.map +1 -0
- package/dist/internal/rewards/Credits.js +95 -0
- package/dist/internal/rewards/Credits.js.map +1 -0
- package/dist/internal/rewards/Events.d.ts +100 -0
- package/dist/internal/rewards/Events.d.ts.map +1 -0
- package/dist/internal/rewards/Events.js +340 -0
- package/dist/internal/rewards/Events.js.map +1 -0
- package/dist/internal/rewards/Projection.d.ts +237 -0
- package/dist/internal/rewards/Projection.d.ts.map +1 -0
- package/dist/internal/rewards/Projection.js +616 -0
- package/dist/internal/rewards/Projection.js.map +1 -0
- package/dist/internal/rewards/Rates.d.ts +44 -0
- package/dist/internal/rewards/Rates.d.ts.map +1 -0
- package/dist/internal/rewards/Rates.js +60 -0
- package/dist/internal/rewards/Rates.js.map +1 -0
- package/dist/internal/rewards/Read.d.ts +158 -0
- package/dist/internal/rewards/Read.d.ts.map +1 -0
- package/dist/internal/rewards/Read.js +292 -0
- package/dist/internal/rewards/Read.js.map +1 -0
- package/dist/internal/rewards/Runner.d.ts +164 -0
- package/dist/internal/rewards/Runner.d.ts.map +1 -0
- package/dist/internal/rewards/Runner.js +1778 -0
- package/dist/internal/rewards/Runner.js.map +1 -0
- package/dist/internal/rewards/Signer.d.ts +224 -0
- package/dist/internal/rewards/Signer.d.ts.map +1 -0
- package/dist/internal/rewards/Signer.js +135 -0
- package/dist/internal/rewards/Signer.js.map +1 -0
- package/dist/internal/rewards/index.d.ts +15 -0
- package/dist/internal/rewards/index.d.ts.map +1 -0
- package/dist/internal/rewards/index.js +15 -0
- package/dist/internal/rewards/index.js.map +1 -0
- package/dist/internal/{funding → routes}/Action.d.ts +12 -1
- package/dist/internal/routes/Action.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Action.js +17 -9
- package/dist/internal/routes/Action.js.map +1 -0
- package/dist/internal/{funding → routes}/Catalog.d.ts +20 -20
- package/dist/internal/routes/Catalog.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Catalog.js +29 -29
- package/dist/internal/routes/Catalog.js.map +1 -0
- package/dist/internal/{funding → routes}/Chain.d.ts +10 -10
- package/dist/internal/routes/Chain.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Chain.js +3 -3
- package/dist/internal/routes/Chain.js.map +1 -0
- package/dist/internal/{funding → routes}/Deposit.d.ts +45 -23
- package/dist/internal/routes/Deposit.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Deposit.js +60 -27
- package/dist/internal/routes/Deposit.js.map +1 -0
- package/dist/internal/{funding → routes}/DepositAddress.d.ts +56 -27
- package/dist/internal/routes/DepositAddress.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/DepositAddress.js +95 -33
- package/dist/internal/routes/DepositAddress.js.map +1 -0
- package/dist/internal/{funding → routes}/DepositWebhook.d.ts +4 -4
- package/dist/internal/routes/DepositWebhook.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/DepositWebhook.js +4 -4
- package/dist/internal/routes/DepositWebhook.js.map +1 -0
- package/dist/internal/routes/Economics.d.ts +25 -0
- package/dist/internal/routes/Economics.d.ts.map +1 -0
- package/dist/internal/routes/Economics.js +28 -0
- package/dist/internal/routes/Economics.js.map +1 -0
- package/dist/internal/{funding → routes}/Evidence.d.ts +3 -3
- package/dist/internal/routes/Evidence.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Evidence.js +7 -7
- package/dist/internal/routes/Evidence.js.map +1 -0
- package/dist/internal/routes/Observability.d.ts +154 -0
- package/dist/internal/routes/Observability.d.ts.map +1 -0
- package/dist/internal/routes/Observability.js +389 -0
- package/dist/internal/routes/Observability.js.map +1 -0
- package/dist/internal/{funding → routes}/Provider.d.ts +311 -105
- package/dist/internal/routes/Provider.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Provider.js +229 -98
- package/dist/internal/routes/Provider.js.map +1 -0
- package/dist/internal/{funding → routes}/Reconciliation.d.ts +11 -6
- package/dist/internal/routes/Reconciliation.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Reconciliation.js +408 -158
- package/dist/internal/routes/Reconciliation.js.map +1 -0
- package/dist/internal/routes/Route.d.ts +21 -0
- package/dist/internal/routes/Route.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Route.js +1 -1
- package/dist/internal/routes/Route.js.map +1 -0
- package/dist/internal/{funding → routes}/SourceObservation.d.ts +6 -6
- package/dist/internal/routes/SourceObservation.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/SourceObservation.js +8 -8
- package/dist/internal/routes/SourceObservation.js.map +1 -0
- package/dist/internal/{funding → routes}/Subsidy.d.ts +48 -3
- package/dist/internal/routes/Subsidy.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Subsidy.js +43 -3
- package/dist/internal/routes/Subsidy.js.map +1 -0
- package/dist/internal/{funding → routes}/Token.d.ts +4 -4
- package/dist/internal/routes/Token.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Token.js +3 -3
- package/dist/internal/routes/Token.js.map +1 -0
- package/dist/internal/{funding → routes}/Transfer.d.ts +241 -46
- package/dist/internal/routes/Transfer.d.ts.map +1 -0
- package/dist/internal/routes/Transfer.js +728 -0
- package/dist/internal/routes/Transfer.js.map +1 -0
- package/dist/internal/{funding → routes}/TransferReconciliation.d.ts +13 -10
- package/dist/internal/routes/TransferReconciliation.d.ts.map +1 -0
- package/dist/internal/routes/TransferReconciliation.js +422 -0
- package/dist/internal/routes/TransferReconciliation.js.map +1 -0
- package/dist/internal/routes/TransferSubsidy.d.ts +201 -0
- package/dist/internal/routes/TransferSubsidy.d.ts.map +1 -0
- package/dist/internal/routes/TransferSubsidy.js +256 -0
- package/dist/internal/routes/TransferSubsidy.js.map +1 -0
- package/dist/internal/{funding → routes}/TransferWebhook.d.ts +5 -5
- package/dist/internal/routes/TransferWebhook.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/TransferWebhook.js +3 -3
- package/dist/internal/routes/TransferWebhook.js.map +1 -0
- package/dist/internal/{funding → routes}/index.d.ts +2 -0
- package/dist/internal/routes/index.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/index.js +2 -0
- package/dist/internal/routes/index.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/across.d.ts +4 -4
- package/dist/internal/routes/providers/across.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/across.js +13 -13
- package/dist/internal/routes/providers/across.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/relay.d.ts +21 -12
- package/dist/internal/routes/providers/relay.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/relay.js +194 -110
- package/dist/internal/routes/providers/relay.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/rhino.d.ts +4 -4
- package/dist/internal/routes/providers/rhino.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/rhino.js +10 -10
- package/dist/internal/routes/providers/rhino.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/squid.d.ts +4 -4
- package/dist/internal/routes/providers/squid.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/squid.js +14 -14
- package/dist/internal/routes/providers/squid.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/stargate.d.ts +46 -18
- package/dist/internal/routes/providers/stargate.d.ts.map +1 -0
- package/dist/internal/routes/providers/stargate.js +898 -0
- package/dist/internal/routes/providers/stargate.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/symbiosis.d.ts +4 -4
- package/dist/internal/routes/providers/symbiosis.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/symbiosis.js +30 -20
- package/dist/internal/routes/providers/symbiosis.js.map +1 -0
- package/dist/internal/webhookDestinations/slack.js +12 -12
- package/dist/internal/webhookDestinations/slack.js.map +1 -1
- package/dist/providers/index.d.ts +12 -12
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -12
- package/dist/providers/index.js.map +1 -1
- package/dist/server.d.ts +19 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +19 -0
- package/dist/server.js.map +1 -0
- package/package.json +15 -4
- package/src/ApiKey.ts +1 -1
- package/src/ApiKeys.test.ts +1033 -3
- package/src/ApiKeys.ts +489 -48
- package/src/App.test-d.ts +1 -1
- package/src/App.test.ts +216 -25
- package/src/App.ts +334 -31
- package/src/Assets.test.ts +2 -2
- package/src/Assets.ts +3 -1
- package/src/Auth.test-d.ts +1 -1
- package/src/Client.test-d.ts +539 -110
- package/src/Handler.ts +0 -1
- package/src/OpenApi.contract.test.ts +195 -0
- package/src/Scope.ts +17 -5
- package/src/Webhooks.ts +1 -1
- package/src/admin/App.test.ts +30 -2
- package/src/admin/App.ts +42 -6
- package/src/admin/apps/api-keys.test.ts +267 -5
- package/src/admin/apps/api-keys.ts +100 -50
- package/src/admin/apps/earn-vaults.test.ts +158 -0
- package/src/admin/apps/earn-vaults.ts +679 -6
- package/src/admin/apps/organizations.test.ts +306 -17
- package/src/admin/apps/organizations.ts +299 -24
- package/src/admin/apps/routes-support.test.ts +200 -0
- package/src/admin/apps/routes-support.ts +201 -0
- package/src/admin/apps/routes.test.ts +450 -0
- package/src/admin/apps/routes.ts +896 -0
- package/src/admin/apps/scopes.test.ts +15 -5
- package/src/admin/apps/subsidies.test.ts +306 -0
- package/src/admin/apps/subsidies.ts +457 -0
- package/src/admin/apps/verified-tokens.test.ts +8 -3
- package/src/admin/apps/verified-tokens.ts +3 -3
- package/src/admin/ui/plugin.ts +1 -2
- package/src/admin/ui/src/components/RewardCampaignForm.tsx +1009 -0
- package/src/admin/ui/src/lib/config.ts +11 -2
- package/src/admin/ui/src/lib/earn-vaults.ts +2 -2
- package/src/admin/ui/src/lib/organizations.test.ts +83 -50
- package/src/admin/ui/src/lib/organizations.ts +106 -25
- package/src/admin/ui/src/lib/query-client.ts +1 -1
- package/src/admin/ui/src/lib/reward-campaigns.ts +136 -0
- package/src/admin/ui/src/lib/routes.test.ts +88 -0
- package/src/admin/ui/src/lib/routes.ts +304 -0
- package/src/admin/ui/src/lib/subsidies.ts +75 -0
- package/src/admin/ui/src/routeTree.gen.ts +63 -0
- package/src/admin/ui/src/routes/__root.tsx +12 -1
- package/src/admin/ui/src/routes/api-keys.tsx +196 -84
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +105 -70
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +239 -23
- package/src/admin/ui/src/routes/routes.tsx +1615 -0
- package/src/admin/ui/src/routes/routes_.support.tsx +248 -0
- package/src/admin/ui/src/routes/subsidies.tsx +799 -0
- package/src/admin/ui.generated.ts +144 -69
- package/src/analytics/Analytics.test.ts +108 -18
- package/src/analytics/Analytics.ts +38 -6
- package/src/analytics/tables/requestEvents.test.ts +100 -0
- package/src/analytics/tables/requestEvents.ts +10 -1
- package/src/analytics/tables/routesLifecycleIntervals.ts +140 -0
- package/src/apps/Zones.test.ts +15 -0
- package/src/apps/Zones.ts +52 -5
- package/src/apps/composition.test.ts +68 -60
- package/src/apps/data/App.test.ts +154 -2
- package/src/apps/data/App.ts +88 -28
- package/src/apps/data/routes/activities.test.ts +419 -7
- package/src/apps/data/routes/activities.ts +683 -216
- package/src/apps/data/routes/balances.test.ts +2 -2
- package/src/apps/data/routes/blocks.test.ts +46 -1
- package/src/apps/data/routes/coingecko.test.ts +419 -1
- package/src/apps/data/routes/coingecko.ts +309 -253
- package/src/apps/data/routes/earn.discovery.test.ts +274 -0
- package/src/apps/data/routes/earn.test.ts +1294 -17
- package/src/apps/data/routes/earn.ts +1838 -321
- package/src/apps/data/routes/exchanges.test.ts +12 -15
- package/src/apps/data/routes/fee-amm.test.ts +224 -0
- package/src/apps/data/routes/fee-amm.ts +191 -160
- package/src/apps/data/routes/indexer.test.ts +389 -0
- package/src/apps/data/routes/indexer.ts +165 -69
- package/src/apps/data/routes/receipts.test.ts +1 -1
- package/src/apps/data/routes/rpc.test.ts +352 -8
- package/src/apps/data/routes/rpc.ts +407 -219
- package/src/apps/data/routes/rpc.zone.test.ts +340 -0
- package/src/apps/data/routes/tokenlist.test.ts +285 -0
- package/src/apps/data/routes/tokenlist.ts +173 -88
- package/src/apps/data/routes/tokens.test.ts +93 -3
- package/src/apps/data/routes/tokens.ts +39 -23
- package/src/apps/data/routes/transactions.test.ts +1 -1
- package/src/apps/data/routes/transfers.test.ts +56 -24
- package/src/apps/data/routes/transfers.ts +19 -8
- package/src/apps/data/routes/valuation.test.ts +1 -1
- package/src/apps/data/routes/verified-tokens.test.ts +345 -0
- package/src/apps/data/routes/verified-tokens.ts +99 -29
- package/src/apps/data/routes/webhooks.test.ts +645 -83
- package/src/apps/data/routes/webhooks.ts +1089 -857
- package/src/apps/data/routes/zones.test.ts +148 -71
- package/src/apps/data/routes/zones.ts +71 -55
- package/src/apps/docs/reference.ts +2 -2
- package/src/apps/index.ts +1 -1
- package/src/apps/management/App.ts +9 -51
- package/src/apps/management/Billing.test.ts +375 -14
- package/src/apps/management/Billing.ts +265 -29
- package/src/apps/management/routes/api-keys.test.ts +269 -7
- package/src/apps/management/routes/api-keys.ts +61 -20
- package/src/apps/management/routes/billing.test.ts +477 -15
- package/src/apps/management/routes/billing.ts +377 -50
- package/src/apps/management/routes/faucet.test.ts +1 -1
- package/src/apps/management/routes/faucet.ts +1 -1
- package/src/apps/management/routes/invitations.test.ts +270 -3
- package/src/apps/management/routes/invitations.ts +185 -15
- package/src/apps/management/routes/invoicePreview.test.ts +549 -0
- package/src/apps/management/routes/me.test.ts +246 -5
- package/src/apps/management/routes/me.ts +7 -2
- package/src/apps/management/routes/members.test.ts +108 -0
- package/src/apps/management/routes/orgs.test.ts +191 -3
- package/src/apps/management/routes/orgs.ts +58 -11
- package/src/apps/management/routes/projects.test.ts +33 -3
- package/src/apps/management/routes/projects.ts +6 -1
- package/src/apps/management/routes/scopes.test.ts +30 -2
- package/src/apps/management/routes/scopes.ts +4 -1
- package/src/apps/management/routes/usage.test.ts +32 -0
- package/src/apps/management/routes/usage.ts +22 -4
- package/src/apps/management/routes/webhooks.test.ts +49 -26
- package/src/apps/management/routes/webhooks.ts +78 -22
- package/src/apps/mcp.test.ts +6 -6
- package/src/apps/mcp.ts +7 -7
- package/src/apps/mpp/App.ts +37 -7
- package/src/apps/mpp/Mpp.test.ts +49 -8
- package/src/apps/mpp/Mpp.zone.test.ts +219 -0
- package/src/apps/mpp/internal/Adapter.ts +34 -0
- package/src/apps/mpp/internal/Policy.test.ts +86 -31
- package/src/apps/mpp/internal/Policy.ts +49 -7
- package/src/apps/mpp/internal/Sponsorship.test.ts +207 -0
- package/src/apps/mpp/internal/Sponsorship.ts +9 -3
- package/src/apps/relay/App.test.ts +839 -64
- package/src/apps/relay/App.ts +148 -81
- package/src/apps/relay/App.zone-billing.test.ts +257 -0
- package/src/apps/relay/Sponsorships.test.ts +67 -4
- package/src/apps/relay/Sponsorships.ts +233 -32
- package/src/apps/relay/Sponsorships.zone.test.ts +102 -0
- package/src/apps/{funding → routes}/Access.ts +6 -6
- package/src/apps/routes/App.test.ts +165 -0
- package/src/apps/routes/App.ts +96 -0
- package/src/apps/{funding → routes}/Inventory.ts +2 -2
- package/src/apps/routes/index.ts +1 -0
- package/src/apps/{funding → routes}/routes/chains.test.ts +66 -66
- package/src/apps/{funding → routes}/routes/chains.ts +23 -23
- package/src/apps/{funding → routes}/routes/deposit-addresses.test.ts +1358 -458
- package/src/apps/{funding → routes}/routes/deposit-addresses.ts +566 -246
- package/src/apps/{funding → routes}/routes/providers.test.ts +27 -33
- package/src/apps/{funding → routes}/routes/providers.ts +23 -23
- package/src/apps/{funding → routes}/routes/quotes.test.ts +298 -41
- package/src/apps/{funding → routes}/routes/quotes.ts +57 -40
- package/src/apps/{funding → routes}/routes/transfers.test.ts +1100 -353
- package/src/apps/routes/routes/transfers.ts +1332 -0
- package/src/cli/Cli.test.ts +1 -1
- package/src/cli/commands/admin.test.ts +748 -1
- package/src/cli/commands/admin.ts +278 -0
- package/src/cloudflare.ts +52 -47
- package/src/db/Db.test.ts +245 -2
- package/src/db/Db.ts +1476 -34
- package/src/db/Schema.ts +729 -228
- package/src/db/tables/apiKeyAdmissionBootstraps.ts +4 -0
- package/src/db/tables/apiKeyAdmissions.ts +218 -0
- package/src/db/tables/apiKeyOwnerAdmissions.ts +4 -0
- package/src/db/tables/apiKeyOwnerTombstones.ts +81 -0
- package/src/db/tables/apiKeyRevocations.test.ts +74 -0
- package/src/db/tables/apiKeyRevocations.ts +121 -0
- package/src/db/tables/authAccounts.ts +105 -0
- package/src/db/tables/authSessions.ts +13 -0
- package/src/db/tables/authVerifications.ts +13 -0
- package/src/db/tables/invitations.ts +142 -45
- package/src/db/tables/memberships.ts +79 -3
- package/src/db/tables/organizations.test.ts +690 -13
- package/src/db/tables/organizations.ts +139 -55
- package/src/db/tables/projects.test.ts +16 -0
- package/src/db/tables/projects.ts +13 -3
- package/src/db/tables/requestUsage.ts +4 -1
- package/src/db/tables/rewardAccounts.ts +178 -0
- package/src/db/tables/rewardCampaignDistributors.ts +68 -0
- package/src/db/tables/rewardCampaigns.test.ts +1388 -0
- package/src/db/tables/rewardCampaigns.ts +647 -0
- package/src/db/tables/rewardCredits.ts +110 -0
- package/src/db/tables/rewardEligibilityAssociations.test.ts +271 -0
- package/src/db/tables/rewardEligibilityAssociations.ts +184 -0
- package/src/db/tables/rewardRuns.ts +514 -0
- package/src/db/tables/rewardTransactionAttempts.ts +272 -0
- package/src/db/tables/routesCatalog.test.ts +185 -0
- package/src/db/tables/routesCatalog.ts +163 -0
- package/src/db/tables/routesDepositAddresses.test.ts +1048 -0
- package/src/db/tables/routesDepositAddresses.ts +1008 -0
- package/src/db/tables/{fundingDepositRequestObservations.test.ts → routesDepositRequestObservations.test.ts} +13 -14
- package/src/db/tables/{fundingDepositRequestObservations.ts → routesDepositRequestObservations.ts} +10 -10
- package/src/db/tables/{fundingDeposits.test.ts → routesDeposits.test.ts} +316 -46
- package/src/db/tables/routesDeposits.ts +1062 -0
- package/src/db/tables/routesIdempotency.test.ts +796 -0
- package/src/db/tables/routesIdempotency.ts +496 -0
- package/src/db/tables/routesSubsidies.test.ts +120 -0
- package/src/db/tables/routesSubsidies.ts +71 -0
- package/src/db/tables/{fundingTransferEvents.ts → routesTransferEvents.ts} +4 -4
- package/src/db/tables/routesTransferSubsidies.ts +38 -0
- package/src/db/tables/routesTransferSubsidyNonces.ts +124 -0
- package/src/db/tables/routesTransferTransactions.test.ts +195 -0
- package/src/db/tables/{fundingTransferTransactions.ts → routesTransferTransactions.ts} +63 -18
- package/src/db/tables/routesTransfers.test.ts +338 -0
- package/src/db/tables/routesTransfers.ts +662 -0
- package/src/db/tables/sponsoredTransactions.test.ts +269 -45
- package/src/db/tables/sponsoredTransactions.ts +225 -65
- package/src/db/tables/sponsorshipAttributions.test.ts +160 -0
- package/src/db/tables/sponsorshipAttributions.ts +168 -0
- package/src/db/tables/sponsorshipReconciliationCursors.test.ts +115 -0
- package/src/db/tables/sponsorshipReconciliationCursors.ts +67 -0
- package/src/db/tables/stripeCustomers.test.ts +85 -0
- package/src/db/tables/stripeCustomers.ts +24 -0
- package/src/db/tables/users.test.ts +129 -0
- package/src/db/tables/users.ts +49 -3
- package/src/db/tables/webhookQueueEvents.ts +8 -1
- package/src/db/tables/webhookSubscriptions.ts +95 -20
- package/src/handlers/internal/executionError.ts +3 -4
- package/src/handlers/internal/multisig.ts +13 -816
- package/src/handlers/internal/sponsorship.ts +26 -10
- package/src/handlers/relay.test-d.ts +9 -1
- package/src/handlers/relay.test.ts +823 -3
- package/src/handlers/relay.ts +127 -107
- package/src/index.test-d.ts +7 -0
- package/src/index.ts +0 -17
- package/src/internal/AssetResponse.ts +26 -0
- package/src/internal/Auth.test.ts +1564 -9
- package/src/internal/Auth.ts +833 -239
- package/src/internal/BetterAuth.test.ts +242 -0
- package/src/internal/BetterAuth.ts +349 -0
- package/src/internal/Cache.ts +2 -0
- package/src/internal/EarnRates.test.ts +17 -0
- package/src/internal/EarnRates.ts +124 -31
- package/src/internal/EarnSharePrices.test.ts +182 -0
- package/src/internal/EarnSharePrices.ts +313 -0
- package/src/internal/EarnVaults.test.ts +21 -0
- package/src/internal/EarnVaults.ts +33 -11
- package/src/internal/Email.ts +54 -0
- package/src/internal/Idempotency.test.ts +2 -2
- package/src/internal/Log.test-d.ts +8 -7
- package/src/internal/Log.test.ts +114 -16
- package/src/internal/Log.ts +53 -40
- package/src/internal/MetricSink.test.ts +313 -26
- package/src/internal/MetricSink.ts +73 -8
- package/src/internal/Mpp.test.ts +31 -0
- package/src/internal/Mpp.ts +21 -24
- package/src/internal/OpenApi.ts +45 -12
- package/src/internal/Provider.test.ts +1 -1
- package/src/internal/Provider.ts +1 -1
- package/src/internal/RateLimit.test.ts +21 -3
- package/src/internal/RateLimit.ts +12 -1
- package/src/internal/Store.test-d.ts +1 -1
- package/src/internal/Store.test.ts +151 -8
- package/src/internal/Store.ts +76 -9
- package/src/internal/Tidx.test.ts +59 -8
- package/src/internal/Tidx.ts +86 -14
- package/src/internal/Timing.test.ts +77 -0
- package/src/internal/Timing.ts +83 -6
- package/src/internal/VercelOidc.test.ts +188 -0
- package/src/internal/VercelOidc.ts +193 -0
- package/src/internal/VerifiedTokens.test.ts +60 -6
- package/src/internal/VerifiedTokens.ts +21 -24
- package/src/internal/Viem.batch.test.ts +80 -0
- package/src/internal/Viem.test.ts +201 -2
- package/src/internal/Viem.ts +221 -25
- package/src/internal/Webhooks.test.ts +85 -6
- package/src/internal/Webhooks.ts +22 -4
- package/src/internal/ZoneRpc.ts +50 -0
- package/src/internal/exchange/Provider.test.ts +2 -2
- package/src/internal/index.test.ts +3 -1
- package/src/internal/index.ts +3 -1
- package/src/internal/rewards/Audit.ts +231 -0
- package/src/internal/rewards/Campaigns.test.ts +1234 -0
- package/src/internal/rewards/Campaigns.ts +1205 -0
- package/src/internal/rewards/Credits.ts +165 -0
- package/src/internal/rewards/Events.local.test.ts +113 -0
- package/src/internal/rewards/Events.test.ts +152 -0
- package/src/internal/rewards/Events.ts +468 -0
- package/src/internal/rewards/Projection.test.ts +681 -0
- package/src/internal/rewards/Projection.ts +987 -0
- package/src/internal/rewards/Rates.test.ts +171 -0
- package/src/internal/rewards/Rates.ts +110 -0
- package/src/internal/rewards/Read.test.ts +501 -0
- package/src/internal/rewards/Read.ts +476 -0
- package/src/internal/rewards/Runner.checkpoint.test.ts +80 -0
- package/src/internal/rewards/Runner.states.test.ts +188 -0
- package/src/internal/rewards/Runner.test.ts +90 -0
- package/src/internal/rewards/Runner.ts +2229 -0
- package/src/internal/rewards/Signer.test.ts +79 -0
- package/src/internal/rewards/Signer.ts +180 -0
- package/src/internal/rewards/index.ts +14 -0
- package/src/internal/{funding → routes}/Action.test.ts +63 -14
- package/src/internal/{funding → routes}/Action.ts +35 -8
- package/src/internal/{funding → routes}/Catalog.test.ts +3 -3
- package/src/internal/{funding → routes}/Catalog.ts +39 -39
- package/src/internal/{funding → routes}/Chain.test.ts +1 -1
- package/src/internal/{funding → routes}/Chain.ts +11 -11
- package/src/internal/{funding → routes}/Deposit.test.ts +1 -1
- package/src/internal/{funding → routes}/Deposit.ts +93 -45
- package/src/internal/{funding → routes}/DepositAddress.test.ts +11 -3
- package/src/internal/{funding → routes}/DepositAddress.ts +132 -53
- package/src/internal/{funding → routes}/DepositWebhook.test.ts +61 -18
- package/src/internal/{funding → routes}/DepositWebhook.ts +9 -9
- package/src/internal/routes/Economics.test.ts +42 -0
- package/src/internal/routes/Economics.ts +47 -0
- package/src/internal/{funding → routes}/Evidence.test.ts +6 -6
- package/src/internal/{funding → routes}/Evidence.ts +9 -9
- package/src/internal/routes/Observability.test.ts +636 -0
- package/src/internal/routes/Observability.ts +668 -0
- package/src/internal/{funding → routes}/Provider.test.ts +489 -153
- package/src/internal/{funding → routes}/Provider.ts +489 -186
- package/src/internal/{funding → routes}/Reconciliation.local.test.ts +84 -12
- package/src/internal/{funding → routes}/Reconciliation.test.ts +1213 -279
- package/src/internal/{funding → routes}/Reconciliation.ts +501 -203
- package/src/internal/routes/Reconciliation.unattributed.test.ts +250 -0
- package/src/internal/{funding → routes}/Route.ts +7 -7
- package/src/internal/{funding → routes}/SourceObservation.test.ts +13 -14
- package/src/internal/{funding → routes}/SourceObservation.ts +13 -13
- package/src/internal/{funding → routes}/Subsidy.local.test.ts +7 -7
- package/src/internal/routes/Subsidy.test.ts +169 -0
- package/src/internal/{funding → routes}/Subsidy.ts +86 -6
- package/src/internal/{funding → routes}/Token.test.ts +1 -1
- package/src/internal/{funding → routes}/Token.ts +5 -5
- package/src/internal/routes/Transfer.test.ts +1199 -0
- package/src/internal/routes/Transfer.ts +1206 -0
- package/src/internal/routes/TransferReconciliation.test.ts +731 -0
- package/src/internal/routes/TransferReconciliation.ts +527 -0
- package/src/internal/routes/TransferSubsidy.test.ts +172 -0
- package/src/internal/routes/TransferSubsidy.ts +447 -0
- package/src/internal/{funding → routes}/TransferWebhook.test.ts +13 -13
- package/src/internal/{funding → routes}/TransferWebhook.ts +7 -7
- package/src/internal/{funding → routes}/index.test.ts +5 -3
- package/src/internal/{funding → routes}/index.ts +2 -0
- package/src/internal/{funding → routes}/providers/across.ts +16 -16
- package/src/internal/{funding → routes}/providers/index.test.ts +157 -44
- package/src/internal/{funding → routes}/providers/relay.test.ts +165 -32
- package/src/internal/{funding → routes}/providers/relay.ts +228 -121
- package/src/internal/{funding → routes}/providers/rhino.ts +16 -16
- package/src/internal/{funding → routes}/providers/squid.ts +17 -17
- package/src/internal/routes/providers/stargate.test.ts +728 -0
- package/src/internal/routes/providers/stargate.ts +1276 -0
- package/src/internal/{funding → routes}/providers/symbiosis.ts +64 -24
- package/src/internal/webhookDestinations/slack.ts +10 -10
- package/src/providers/index.ts +13 -13
- package/src/server.ts +18 -0
- package/dist/apps/funding/Access.d.ts.map +0 -1
- package/dist/apps/funding/Access.js.map +0 -1
- package/dist/apps/funding/App.js.map +0 -1
- package/dist/apps/funding/Inventory.d.ts.map +0 -1
- package/dist/apps/funding/Inventory.js.map +0 -1
- package/dist/apps/funding/ProviderAttempts.d.ts +0 -5
- package/dist/apps/funding/ProviderAttempts.d.ts.map +0 -1
- package/dist/apps/funding/ProviderAttempts.js +0 -24
- package/dist/apps/funding/ProviderAttempts.js.map +0 -1
- package/dist/apps/funding/index.d.ts +0 -2
- package/dist/apps/funding/index.d.ts.map +0 -1
- package/dist/apps/funding/index.js +0 -2
- package/dist/apps/funding/index.js.map +0 -1
- package/dist/apps/funding/routes/chains.d.ts.map +0 -1
- package/dist/apps/funding/routes/chains.js.map +0 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +0 -1
- package/dist/apps/funding/routes/deposit-addresses.js.map +0 -1
- package/dist/apps/funding/routes/providers.d.ts.map +0 -1
- package/dist/apps/funding/routes/providers.js +0 -57
- package/dist/apps/funding/routes/providers.js.map +0 -1
- package/dist/apps/funding/routes/quotes.d.ts.map +0 -1
- package/dist/apps/funding/routes/quotes.js.map +0 -1
- package/dist/apps/funding/routes/transfers.d.ts.map +0 -1
- package/dist/apps/funding/routes/transfers.js +0 -828
- package/dist/apps/funding/routes/transfers.js.map +0 -1
- package/dist/db/tables/fundingCatalog.d.ts +0 -58
- package/dist/db/tables/fundingCatalog.d.ts.map +0 -1
- package/dist/db/tables/fundingCatalog.js.map +0 -1
- package/dist/db/tables/fundingDepositAddresses.d.ts +0 -192
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +0 -1
- package/dist/db/tables/fundingDepositAddresses.js +0 -235
- package/dist/db/tables/fundingDepositAddresses.js.map +0 -1
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +0 -1
- package/dist/db/tables/fundingDepositRequestObservations.js.map +0 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +0 -1
- package/dist/db/tables/fundingDeposits.js +0 -295
- package/dist/db/tables/fundingDeposits.js.map +0 -1
- package/dist/db/tables/fundingIdempotency.d.ts +0 -91
- package/dist/db/tables/fundingIdempotency.d.ts.map +0 -1
- package/dist/db/tables/fundingIdempotency.js +0 -103
- package/dist/db/tables/fundingIdempotency.js.map +0 -1
- package/dist/db/tables/fundingTransferEvents.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferEvents.js.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.d.ts +0 -53
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.js.map +0 -1
- package/dist/db/tables/fundingTransfers.d.ts +0 -99
- package/dist/db/tables/fundingTransfers.d.ts.map +0 -1
- package/dist/db/tables/fundingTransfers.js +0 -110
- package/dist/db/tables/fundingTransfers.js.map +0 -1
- package/dist/internal/funding/Action.d.ts.map +0 -1
- package/dist/internal/funding/Action.js.map +0 -1
- package/dist/internal/funding/Catalog.d.ts.map +0 -1
- package/dist/internal/funding/Catalog.js.map +0 -1
- package/dist/internal/funding/Chain.d.ts.map +0 -1
- package/dist/internal/funding/Chain.js.map +0 -1
- package/dist/internal/funding/Deposit.d.ts.map +0 -1
- package/dist/internal/funding/Deposit.js.map +0 -1
- package/dist/internal/funding/DepositAddress.d.ts.map +0 -1
- package/dist/internal/funding/DepositAddress.js.map +0 -1
- package/dist/internal/funding/DepositWebhook.d.ts.map +0 -1
- package/dist/internal/funding/DepositWebhook.js.map +0 -1
- package/dist/internal/funding/Evidence.d.ts.map +0 -1
- package/dist/internal/funding/Evidence.js.map +0 -1
- package/dist/internal/funding/Provider.d.ts.map +0 -1
- package/dist/internal/funding/Provider.js.map +0 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +0 -1
- package/dist/internal/funding/Reconciliation.js.map +0 -1
- package/dist/internal/funding/Route.d.ts +0 -21
- package/dist/internal/funding/Route.d.ts.map +0 -1
- package/dist/internal/funding/Route.js.map +0 -1
- package/dist/internal/funding/SourceObservation.d.ts.map +0 -1
- package/dist/internal/funding/SourceObservation.js.map +0 -1
- package/dist/internal/funding/Subsidy.d.ts.map +0 -1
- package/dist/internal/funding/Subsidy.js.map +0 -1
- package/dist/internal/funding/Token.d.ts.map +0 -1
- package/dist/internal/funding/Token.js.map +0 -1
- package/dist/internal/funding/Transfer.d.ts.map +0 -1
- package/dist/internal/funding/Transfer.js +0 -462
- package/dist/internal/funding/Transfer.js.map +0 -1
- package/dist/internal/funding/TransferReconciliation.d.ts.map +0 -1
- package/dist/internal/funding/TransferReconciliation.js +0 -192
- package/dist/internal/funding/TransferReconciliation.js.map +0 -1
- package/dist/internal/funding/TransferWebhook.d.ts.map +0 -1
- package/dist/internal/funding/TransferWebhook.js.map +0 -1
- package/dist/internal/funding/index.d.ts.map +0 -1
- package/dist/internal/funding/index.js.map +0 -1
- package/dist/internal/funding/providers/across.d.ts.map +0 -1
- package/dist/internal/funding/providers/across.js.map +0 -1
- package/dist/internal/funding/providers/relay.d.ts.map +0 -1
- package/dist/internal/funding/providers/relay.js.map +0 -1
- package/dist/internal/funding/providers/rhino.d.ts.map +0 -1
- package/dist/internal/funding/providers/rhino.js.map +0 -1
- package/dist/internal/funding/providers/squid.d.ts.map +0 -1
- package/dist/internal/funding/providers/squid.js.map +0 -1
- package/dist/internal/funding/providers/stargate.d.ts.map +0 -1
- package/dist/internal/funding/providers/stargate.js +0 -579
- package/dist/internal/funding/providers/stargate.js.map +0 -1
- package/dist/internal/funding/providers/symbiosis.d.ts.map +0 -1
- package/dist/internal/funding/providers/symbiosis.js.map +0 -1
- package/src/apps/funding/App.test.ts +0 -78
- package/src/apps/funding/App.ts +0 -88
- package/src/apps/funding/ProviderAttempts.ts +0 -26
- package/src/apps/funding/index.ts +0 -1
- package/src/apps/funding/routes/transfers.ts +0 -987
- package/src/db/tables/fundingCatalog.test.ts +0 -122
- package/src/db/tables/fundingCatalog.ts +0 -163
- package/src/db/tables/fundingDepositAddresses.test.ts +0 -608
- package/src/db/tables/fundingDepositAddresses.ts +0 -443
- package/src/db/tables/fundingDeposits.ts +0 -572
- package/src/db/tables/fundingIdempotency.test.ts +0 -182
- package/src/db/tables/fundingIdempotency.ts +0 -180
- package/src/db/tables/fundingTransferTransactions.test.ts +0 -112
- package/src/db/tables/fundingTransfers.test.ts +0 -115
- package/src/db/tables/fundingTransfers.ts +0 -189
- package/src/handlers/internal/multisig.test.ts +0 -818
- package/src/internal/funding/Subsidy.test.ts +0 -75
- package/src/internal/funding/Transfer.test.ts +0 -524
- package/src/internal/funding/Transfer.ts +0 -762
- package/src/internal/funding/TransferReconciliation.test.ts +0 -147
- package/src/internal/funding/TransferReconciliation.ts +0 -264
- package/src/internal/funding/providers/stargate.test.ts +0 -328
- package/src/internal/funding/providers/stargate.ts +0 -856
- /package/dist/apps/{funding → routes}/Inventory.d.ts +0 -0
- /package/src/internal/{funding → routes}/Route.test.ts +0 -0
|
@@ -4,7 +4,7 @@ import * as z from 'zod/mini'
|
|
|
4
4
|
import type * as App from '../../App.js'
|
|
5
5
|
import * as Db from '../../db/Db.js'
|
|
6
6
|
import * as db_Schema from '../../db/Schema.js'
|
|
7
|
-
import * as core_Catalog from '../../db/tables/
|
|
7
|
+
import * as core_Catalog from '../../db/tables/routesCatalog.js'
|
|
8
8
|
import * as Timing from '../Timing.js'
|
|
9
9
|
import * as Chain from './Chain.js'
|
|
10
10
|
import * as Route from './Route.js'
|
|
@@ -15,16 +15,16 @@ const defaultRefreshMs = 10_000
|
|
|
15
15
|
const emptyUpdatedAt = '1970-01-01T00:00:00.000Z'
|
|
16
16
|
const emptyVersion = 'empty'
|
|
17
17
|
|
|
18
|
-
/**
|
|
18
|
+
/** Route catalog schemas. */
|
|
19
19
|
export namespace schema {
|
|
20
20
|
const ChainId = z
|
|
21
21
|
.string()
|
|
22
22
|
.check(
|
|
23
23
|
z.regex(/^(?:eip155:\d+|solana:[^:]+|tron:[^:]+)$/),
|
|
24
|
-
z.describe('CAIP-2
|
|
24
|
+
z.describe('CAIP-2 route chain identifier.'),
|
|
25
25
|
)
|
|
26
26
|
|
|
27
|
-
const Chain = z.extend(db_Schema.
|
|
27
|
+
const Chain = z.extend(db_Schema.RoutesChain, {
|
|
28
28
|
id: ChainId,
|
|
29
29
|
parentChainId: z.nullable(ChainId),
|
|
30
30
|
})
|
|
@@ -33,80 +33,80 @@ export namespace schema {
|
|
|
33
33
|
.object({
|
|
34
34
|
modes: z
|
|
35
35
|
.readonly(z.array(z.enum(Transfer.modes)))
|
|
36
|
-
.check(z.minLength(1), z.describe('Amount modes enabled for
|
|
36
|
+
.check(z.minLength(1), z.describe('Amount modes enabled for route transfers.')),
|
|
37
37
|
})
|
|
38
|
-
.check(z.describe('
|
|
38
|
+
.check(z.describe('Route transfer capability enabled on one provider route.'))
|
|
39
39
|
|
|
40
|
-
/**
|
|
40
|
+
/** Routes capabilities enabled on one provider route. */
|
|
41
41
|
export const Capabilities = z
|
|
42
42
|
.object({
|
|
43
43
|
depositAddress: z
|
|
44
44
|
.optional(z.literal(true))
|
|
45
|
-
.check(z.describe('Deposit-address
|
|
45
|
+
.check(z.describe('Deposit-address routes support enabled on the route.')),
|
|
46
46
|
transfer: z
|
|
47
47
|
.optional(TransferCapability)
|
|
48
|
-
.check(z.describe('
|
|
48
|
+
.check(z.describe('Route transfer support enabled on the route.')),
|
|
49
49
|
})
|
|
50
50
|
.check(
|
|
51
51
|
z.refine(
|
|
52
52
|
(capabilities) =>
|
|
53
53
|
capabilities.depositAddress !== undefined || capabilities.transfer !== undefined,
|
|
54
54
|
),
|
|
55
|
-
z.describe('
|
|
55
|
+
z.describe('Routes capabilities enabled on one provider route.'),
|
|
56
56
|
)
|
|
57
57
|
|
|
58
|
-
/** Provider-specific configuration for one
|
|
58
|
+
/** Provider-specific configuration for one provider route. */
|
|
59
59
|
export const Configuration = z
|
|
60
60
|
.record(z.string(), z.unknown())
|
|
61
|
-
.check(z.describe('Provider-specific configuration for one
|
|
61
|
+
.check(z.describe('Provider-specific configuration for one provider route.'))
|
|
62
62
|
|
|
63
63
|
// Absent or null `capabilities` keeps a route quote-only. Absent or null
|
|
64
64
|
// `configuration` lets providers decide whether a route is configured.
|
|
65
|
-
const Route = z.extend(db_Schema.
|
|
65
|
+
const Route = z.extend(db_Schema.RoutesRoute, {
|
|
66
66
|
capabilities: z.optional(z.nullable(Capabilities)),
|
|
67
67
|
configuration: z.optional(z.nullable(Configuration)),
|
|
68
68
|
})
|
|
69
69
|
|
|
70
|
-
/** Complete
|
|
70
|
+
/** Complete route catalog content accepted by the publish boundary. */
|
|
71
71
|
export const Data = z
|
|
72
72
|
.object({
|
|
73
73
|
chainTokens: z
|
|
74
|
-
.readonly(z.array(db_Schema.
|
|
75
|
-
.check(z.describe('Chain-scoped
|
|
76
|
-
chains: z.readonly(z.array(Chain)).check(z.describe('
|
|
77
|
-
routes: z.readonly(z.array(Route)).check(z.describe('
|
|
78
|
-
tokens: z.readonly(z.array(db_Schema.
|
|
74
|
+
.readonly(z.array(db_Schema.RoutesChainToken))
|
|
75
|
+
.check(z.describe('Chain-scoped route tokens.')),
|
|
76
|
+
chains: z.readonly(z.array(Chain)).check(z.describe('Route chains.')),
|
|
77
|
+
routes: z.readonly(z.array(Route)).check(z.describe('Route provider routes.')),
|
|
78
|
+
tokens: z.readonly(z.array(db_Schema.RoutesToken)).check(z.describe('Route tokens.')),
|
|
79
79
|
})
|
|
80
|
-
.check(z.describe('Complete
|
|
80
|
+
.check(z.describe('Complete route catalog content.'))
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
/**
|
|
83
|
+
/** Routes capabilities enabled on one provider route. */
|
|
84
84
|
export type Capabilities = z.output<typeof schema.Capabilities>
|
|
85
85
|
|
|
86
|
-
/** Provider-specific configuration for one
|
|
86
|
+
/** Provider-specific configuration for one provider route. */
|
|
87
87
|
export type Configuration = z.output<typeof schema.Configuration>
|
|
88
88
|
|
|
89
|
-
/** One hydrated provider route in a
|
|
89
|
+
/** One hydrated provider route in a route catalog snapshot. */
|
|
90
90
|
export type ProviderRoute = {
|
|
91
|
-
/**
|
|
91
|
+
/** Routes capabilities; absent means the route is quote-only. */
|
|
92
92
|
capabilities?: Capabilities | undefined
|
|
93
93
|
/** Provider-specific route configuration. */
|
|
94
94
|
configuration?: Configuration | undefined
|
|
95
|
-
/**
|
|
95
|
+
/** Route provider that supports the route. */
|
|
96
96
|
providerId: string
|
|
97
|
-
/** Hydrated source-to-destination
|
|
97
|
+
/** Hydrated source-to-destination provider route. */
|
|
98
98
|
route: Route.Route
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
/** Compiled and indexed
|
|
101
|
+
/** Compiled and indexed route catalog. */
|
|
102
102
|
export type Snapshot = {
|
|
103
|
-
/**
|
|
103
|
+
/** Route chains indexed by CAIP-2 id, slug, and alias. */
|
|
104
104
|
chainsByKey: ReadonlyMap<string, Chain.Chain>
|
|
105
105
|
/** Hydrated provider routes in stable catalog order. */
|
|
106
106
|
routes: readonly ProviderRoute[]
|
|
107
107
|
/** Hydrated provider routes grouped by provider id. */
|
|
108
108
|
routesByProvider: ReadonlyMap<string, readonly ProviderRoute[]>
|
|
109
|
-
/** Canonical
|
|
109
|
+
/** Canonical route tokens indexed by stable id. */
|
|
110
110
|
tokensById: ReadonlyMap<string, Token.Token>
|
|
111
111
|
/** ISO timestamp of the catalog's last publish. */
|
|
112
112
|
updatedAt: string
|
|
@@ -114,7 +114,7 @@ export type Snapshot = {
|
|
|
114
114
|
version: string
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
/** Compiles stored
|
|
117
|
+
/** Compiles stored route catalog rows into a validated snapshot. */
|
|
118
118
|
export function compile(rows: core_Catalog.Rows): Snapshot {
|
|
119
119
|
const data = normalize({
|
|
120
120
|
chainTokens: rows.chainTokens,
|
|
@@ -220,12 +220,12 @@ export function compile(rows: core_Catalog.Rows): Snapshot {
|
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
/** Reads and compiles the current
|
|
223
|
+
/** Reads and compiles the current route catalog from Postgres. */
|
|
224
224
|
export async function read(db: Db.Db): Promise<Snapshot> {
|
|
225
225
|
return compile(await core_Catalog.read(db))
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
/** Publishes a complete
|
|
228
|
+
/** Publishes a complete route catalog and primes the current isolate. */
|
|
229
229
|
export async function publish(db: Db.Db, input: publish.Input): Promise<Snapshot> {
|
|
230
230
|
const data = normalize(input)
|
|
231
231
|
compile({
|
|
@@ -245,7 +245,7 @@ export async function publish(db: Db.Db, input: publish.Input): Promise<Snapshot
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
export declare namespace publish {
|
|
248
|
-
/** Complete
|
|
248
|
+
/** Complete route catalog content. */
|
|
249
249
|
type Input = z.input<typeof schema.Data>
|
|
250
250
|
}
|
|
251
251
|
|
|
@@ -255,9 +255,9 @@ export function prime(source: Db.Source, snapshot: Snapshot): Snapshot {
|
|
|
255
255
|
return snapshot
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
-
/** Returns the current
|
|
258
|
+
/** Returns the current route catalog snapshot with soft background refresh. */
|
|
259
259
|
export function snapshot(c: Context<App.Environment>): Promise<Snapshot> {
|
|
260
|
-
return Timing.time(c, '
|
|
260
|
+
return Timing.time(c, 'routes_catalog', async () => {
|
|
261
261
|
const source = c.get('dbCached')
|
|
262
262
|
const cell = cells.get(source)
|
|
263
263
|
if (cell && Date.now() - cell.checkedAt < defaultRefreshMs) return cell.snapshot
|
|
@@ -289,7 +289,7 @@ function refresh(c: Context<App.Environment>, source: Db.Source, current: Cell |
|
|
|
289
289
|
try {
|
|
290
290
|
const db = Db.get(source)
|
|
291
291
|
if (current) {
|
|
292
|
-
const head = await Timing.time(c, '
|
|
292
|
+
const head = await Timing.time(c, 'routes_catalog_head', () => core_Catalog.head(db))
|
|
293
293
|
if (!head || head.version === current.snapshot.version) {
|
|
294
294
|
cells.set(source, { checkedAt: Date.now(), snapshot: current.snapshot })
|
|
295
295
|
return current.snapshot
|
|
@@ -300,7 +300,7 @@ function refresh(c: Context<App.Environment>, source: Db.Source, current: Cell |
|
|
|
300
300
|
return next
|
|
301
301
|
} catch (error) {
|
|
302
302
|
if (!current) throw error
|
|
303
|
-
console.error('[
|
|
303
|
+
console.error('[routes-catalog] refresh failed; serving last good snapshot', error)
|
|
304
304
|
cells.set(source, { checkedAt: Date.now(), snapshot: current.snapshot })
|
|
305
305
|
return current.snapshot
|
|
306
306
|
} finally {
|
|
@@ -358,7 +358,7 @@ function resolvePlacement(
|
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
|
|
361
|
-
/** Error thrown when
|
|
361
|
+
/** Error thrown when route catalog references cannot be compiled. */
|
|
362
362
|
export class InvalidCatalogError extends Error {
|
|
363
|
-
override name = '
|
|
363
|
+
override name = 'Routes.Catalog.InvalidCatalogError'
|
|
364
364
|
}
|
|
@@ -68,7 +68,7 @@ describe('eip155Id', () => {
|
|
|
68
68
|
test('rejects non-EIP-155 chains', () => {
|
|
69
69
|
const chain = Chain.from({ id: 'solana:mainnet', name: 'Solana', slug: 'solana' })
|
|
70
70
|
expect(() => Chain.eip155Id(chain)).toThrowErrorMatchingInlineSnapshot(
|
|
71
|
-
`[
|
|
71
|
+
`[Routes.Chain.InvalidIdError]`,
|
|
72
72
|
)
|
|
73
73
|
})
|
|
74
74
|
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Token from './Token.js'
|
|
2
2
|
|
|
3
|
-
/** Canonical identifier for a
|
|
3
|
+
/** Canonical identifier for a route chain. */
|
|
4
4
|
export type Id = `eip155:${number}` | `solana:${string}` | `tron:${string}`
|
|
5
5
|
|
|
6
|
-
/** Chain metadata for a
|
|
6
|
+
/** Chain metadata for a route token. */
|
|
7
7
|
export type Chain = Callable &
|
|
8
8
|
(
|
|
9
9
|
| (Base & {
|
|
@@ -29,18 +29,18 @@ export type Chain = Callable &
|
|
|
29
29
|
type Callable = (options: Callable.Options) => Selection
|
|
30
30
|
|
|
31
31
|
declare namespace Callable {
|
|
32
|
-
/** Tokens selected for a
|
|
32
|
+
/** Tokens selected for a provider route on this chain. */
|
|
33
33
|
type Options = {
|
|
34
34
|
/** Token definitions to resolve on the chain. */
|
|
35
35
|
tokens: readonly Token.Token[]
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
/** Tokens resolved for one
|
|
39
|
+
/** Tokens resolved for one route chain. */
|
|
40
40
|
export type Selection = {
|
|
41
41
|
/** Chain shared by every selected token. */
|
|
42
42
|
chain: Chain
|
|
43
|
-
/** Chain-scoped
|
|
43
|
+
/** Chain-scoped route tokens. */
|
|
44
44
|
tokens: readonly Token.Resolved[]
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -53,13 +53,13 @@ type Base = {
|
|
|
53
53
|
name: string
|
|
54
54
|
/** Parent chain identifier when this chain is a Zone. */
|
|
55
55
|
parentChainId?: Id | undefined
|
|
56
|
-
/** Public RPC endpoints used for
|
|
56
|
+
/** Public RPC endpoints used for routes-chain evidence. */
|
|
57
57
|
rpcUrls: readonly string[]
|
|
58
58
|
/** Stable chain segment used in quote identifiers. */
|
|
59
59
|
slug: string
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
/** Creates
|
|
62
|
+
/** Creates route chain metadata from a CAIP-2 identifier. */
|
|
63
63
|
export function from(options: from.Options): Chain {
|
|
64
64
|
const { aliases = [], id, name, parentChainId, rpcUrls = [], slug } = options
|
|
65
65
|
const base = { aliases, id, name, ...(parentChainId ? { parentChainId } : {}), rpcUrls, slug }
|
|
@@ -90,7 +90,7 @@ export function from(options: from.Options): Chain {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
export declare namespace from {
|
|
93
|
-
/**
|
|
93
|
+
/** Route chain definition. */
|
|
94
94
|
type Options = {
|
|
95
95
|
/** Additional caller-facing aliases accepted for this chain. */
|
|
96
96
|
aliases?: readonly string[] | undefined
|
|
@@ -100,7 +100,7 @@ export declare namespace from {
|
|
|
100
100
|
name: string
|
|
101
101
|
/** Parent chain identifier when this chain is a Zone. */
|
|
102
102
|
parentChainId?: Id | undefined
|
|
103
|
-
/** Public RPC endpoints used for
|
|
103
|
+
/** Public RPC endpoints used for routes-chain evidence. */
|
|
104
104
|
rpcUrls?: readonly string[] | undefined
|
|
105
105
|
/** Stable chain segment used in quote identifiers. */
|
|
106
106
|
slug: string
|
|
@@ -114,7 +114,7 @@ export function eip155Id(chain: Chain): string {
|
|
|
114
114
|
return match[1]
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
/** Error thrown when a
|
|
117
|
+
/** Error thrown when a route chain identifier is invalid for an operation. */
|
|
118
118
|
export class InvalidIdError extends Error {
|
|
119
|
-
override name = '
|
|
119
|
+
override name = 'Routes.Chain.InvalidIdError'
|
|
120
120
|
}
|
|
@@ -4,7 +4,7 @@ describe('generateId', () => {
|
|
|
4
4
|
test('embeds the timestamp so lexical order is chronological', () => {
|
|
5
5
|
const earlier = Deposit.generateId(new Date('2026-01-01T00:00:00.000Z'))
|
|
6
6
|
const later = Deposit.generateId(new Date('2026-01-01T00:00:01.000Z'))
|
|
7
|
-
expect(earlier).toMatch(/^
|
|
7
|
+
expect(earlier).toMatch(/^rdp_\d{15}_[0-9A-Za-z]{24}$/)
|
|
8
8
|
expect(earlier < later).toBe(true)
|
|
9
9
|
})
|
|
10
10
|
})
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import * as z from 'zod/mini'
|
|
2
2
|
|
|
3
3
|
import type * as Db from '../../db/Db.js'
|
|
4
|
-
import * as
|
|
5
|
-
import * as
|
|
4
|
+
import * as RoutesDepositAddresses from '../../db/tables/routesDepositAddresses.js'
|
|
5
|
+
import * as RoutesDeposits from '../../db/tables/routesDeposits.js'
|
|
6
6
|
import * as Id from '../Id.js'
|
|
7
7
|
import * as OpenApi from '../OpenApi.js'
|
|
8
8
|
import * as Schema from '../Schema.js'
|
|
9
9
|
import * as Provider from './Provider.js'
|
|
10
10
|
|
|
11
|
-
/** Mechanisms that can first detect a
|
|
11
|
+
/** Mechanisms that can first detect a route deposit. */
|
|
12
12
|
export const detectionTriggers = ['chain', 'manual', 'poll', 'webhook'] as const
|
|
13
13
|
|
|
14
|
-
/** Mechanism that first detected a
|
|
14
|
+
/** Mechanism that first detected a route deposit. */
|
|
15
15
|
export type DetectionTrigger = (typeof detectionTriggers)[number]
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Public
|
|
18
|
+
* Public route deposit statuses:
|
|
19
19
|
*
|
|
20
20
|
* - `action-required`: Automatic processing stopped and requires recovery or operator action.
|
|
21
21
|
* - `bridging`: The provider is moving the source funds to Tempo.
|
|
@@ -35,7 +35,7 @@ export const statuses = [
|
|
|
35
35
|
'settling',
|
|
36
36
|
] as const
|
|
37
37
|
|
|
38
|
-
/** Lifecycle status of a detected
|
|
38
|
+
/** Lifecycle status of a detected route deposit. */
|
|
39
39
|
export type Status = (typeof statuses)[number]
|
|
40
40
|
|
|
41
41
|
/** Statuses that never change after verified chain evidence. */
|
|
@@ -44,20 +44,28 @@ export const terminalStatuses = ['completed', 'refunded'] as const satisfies rea
|
|
|
44
44
|
/**
|
|
45
45
|
* Customer-safe codes explaining a deposit that needs attention:
|
|
46
46
|
*
|
|
47
|
+
* - `billing_past_due`: The organization must resolve past-due production billing.
|
|
48
|
+
* - `billing_required`: The organization must configure active production billing.
|
|
47
49
|
* - `delivery_failed`: The provider or Tempo could not complete destination delivery.
|
|
48
50
|
* - `delivery_liquidity_unavailable`: The selected strategy cannot obtain the required destination amount.
|
|
49
51
|
* - `manual_recovery_required`: Automatic processing cannot safely continue.
|
|
50
52
|
* - `refund_failed`: The provider could not refund the source funds.
|
|
53
|
+
* - `routes_subsidy_limit_exceeded`: The required subsidy exceeds the effective per-transaction limit.
|
|
54
|
+
* - `routes_subsidy_not_enabled`: The effective policy does not allow a subsidy.
|
|
51
55
|
* - `source_amount_not_supported`: The source amount is outside the supported limits.
|
|
52
56
|
* - `source_token_mismatch`: The transfer used a token other than the configured source token.
|
|
53
57
|
* - `subsidy_balance_unavailable`: Tempo lacks enough pathUSD for the required subsidy.
|
|
54
58
|
* - `subsidy_failed`: Tempo could not deliver the required subsidy.
|
|
55
59
|
*/
|
|
56
60
|
export const statusReasonCodes = [
|
|
61
|
+
'billing_past_due',
|
|
62
|
+
'billing_required',
|
|
57
63
|
'delivery_failed',
|
|
58
64
|
'delivery_liquidity_unavailable',
|
|
59
65
|
'manual_recovery_required',
|
|
60
66
|
'refund_failed',
|
|
67
|
+
'routes_subsidy_limit_exceeded',
|
|
68
|
+
'routes_subsidy_not_enabled',
|
|
61
69
|
'source_amount_not_supported',
|
|
62
70
|
'source_token_mismatch',
|
|
63
71
|
'subsidy_balance_unavailable',
|
|
@@ -90,24 +98,24 @@ export function canTransition(from: Status, to: Status): boolean {
|
|
|
90
98
|
return transitions[from].includes(to)
|
|
91
99
|
}
|
|
92
100
|
|
|
93
|
-
/** Generates a
|
|
101
|
+
/** Generates a route deposit id (`rdp_…`, lexically time-ordered). */
|
|
94
102
|
export function generateId(now: Date = new Date()): string {
|
|
95
|
-
return Id.generateSortable('
|
|
103
|
+
return Id.generateSortable('rdp', now)
|
|
96
104
|
}
|
|
97
105
|
|
|
98
|
-
/** Zod schemas owned by the
|
|
106
|
+
/** Zod schemas owned by the route deposit resource. */
|
|
99
107
|
export namespace schema {
|
|
100
108
|
const transactionHashes = (description: string) =>
|
|
101
109
|
z
|
|
102
110
|
.readonly(z.array(z.string()))
|
|
103
111
|
.check(z.describe(description), z.meta({ examples: [[`0x${'aa'.repeat(32)}`]] }))
|
|
104
112
|
|
|
105
|
-
/** Mechanism that first detected a
|
|
113
|
+
/** Mechanism that first detected a route deposit. */
|
|
106
114
|
export const DetectionTrigger = z
|
|
107
115
|
.enum(detectionTriggers)
|
|
108
116
|
.check(z.describe('How the deposit was first detected.'), z.meta({ examples: ['webhook'] }))
|
|
109
117
|
|
|
110
|
-
/**
|
|
118
|
+
/** Route deposit lifecycle status. */
|
|
111
119
|
export const Status = z
|
|
112
120
|
.enum(statuses)
|
|
113
121
|
.check(
|
|
@@ -133,7 +141,7 @@ export namespace schema {
|
|
|
133
141
|
),
|
|
134
142
|
})
|
|
135
143
|
.check(z.describe('Why a deposit needs attention or recovery.')),
|
|
136
|
-
'
|
|
144
|
+
'RoutesDepositStatusReason',
|
|
137
145
|
)
|
|
138
146
|
|
|
139
147
|
/** Public fields persisted as the deposit snapshot. */
|
|
@@ -142,9 +150,9 @@ export namespace schema {
|
|
|
142
150
|
depositAddressId: z
|
|
143
151
|
.string()
|
|
144
152
|
.check(
|
|
145
|
-
z.regex(/^
|
|
146
|
-
z.describe('
|
|
147
|
-
z.meta({ examples: ['
|
|
153
|
+
z.regex(/^(?:fda|rda)_[A-Za-z0-9_-]+$/),
|
|
154
|
+
z.describe('Route deposit address that detected the transfer, including legacy IDs.'),
|
|
155
|
+
z.meta({ examples: ['rda_001785792000000_2ZPE2gvateYEQ0dQslgvkhjx'] }),
|
|
148
156
|
),
|
|
149
157
|
destinationAmount: z.optional(Schema.TokenAmount),
|
|
150
158
|
destinationAmountRequired: z
|
|
@@ -192,8 +200,8 @@ export namespace schema {
|
|
|
192
200
|
z.describe('Public route, provider observations, and verified evidence for one deposit.'),
|
|
193
201
|
)
|
|
194
202
|
|
|
195
|
-
/** One detected
|
|
196
|
-
export const
|
|
203
|
+
/** One detected route deposit. */
|
|
204
|
+
export const RoutesDeposit = OpenApi.component(
|
|
197
205
|
z
|
|
198
206
|
.object({
|
|
199
207
|
createdAt: z.iso
|
|
@@ -212,9 +220,9 @@ export namespace schema {
|
|
|
212
220
|
id: z
|
|
213
221
|
.string()
|
|
214
222
|
.check(
|
|
215
|
-
z.regex(/^
|
|
216
|
-
z.describe('
|
|
217
|
-
z.meta({ examples: ['
|
|
223
|
+
z.regex(/^(?:fdp|rdp)_[A-Za-z0-9_-]+$/),
|
|
224
|
+
z.describe('Route deposit id (`rdp_…`, or legacy `fdp_…`).'),
|
|
225
|
+
z.meta({ examples: ['rdp_001785792060000_2ZPE2gvateYEQ0dQslgvkhjx'] }),
|
|
218
226
|
),
|
|
219
227
|
provider: Snapshot.shape.provider,
|
|
220
228
|
recipient: Snapshot.shape.recipient,
|
|
@@ -242,29 +250,29 @@ export namespace schema {
|
|
|
242
250
|
),
|
|
243
251
|
})
|
|
244
252
|
.check(z.describe('One detected deposit and its delivery status.')),
|
|
245
|
-
'
|
|
253
|
+
'RoutesDeposit',
|
|
246
254
|
)
|
|
247
255
|
}
|
|
248
256
|
|
|
249
|
-
/** Stored public snapshot of a
|
|
257
|
+
/** Stored public snapshot of a route deposit. */
|
|
250
258
|
export type Snapshot = z.output<typeof schema.Snapshot>
|
|
251
259
|
|
|
252
|
-
/** Customer-safe
|
|
260
|
+
/** Customer-safe route deposit status reason. */
|
|
253
261
|
export type StatusReason = z.output<typeof schema.StatusReason>
|
|
254
262
|
|
|
255
|
-
/** A
|
|
256
|
-
export type Public = z.output<typeof schema.
|
|
263
|
+
/** A route deposit as returned by reads. */
|
|
264
|
+
export type Public = z.output<typeof schema.RoutesDeposit>
|
|
257
265
|
|
|
258
266
|
/** Creates a durable record for one provider-observed source transaction. */
|
|
259
|
-
export async function create(db: Db.Db, input: create.Input): Promise<
|
|
260
|
-
return
|
|
267
|
+
export async function create(db: Db.Db, input: create.Input): Promise<RoutesDeposits.Record> {
|
|
268
|
+
return RoutesDeposits.insert(db, await record(db, input))
|
|
261
269
|
}
|
|
262
270
|
|
|
263
271
|
/** Creates or returns the deposit for one verified chain transfer. */
|
|
264
272
|
export async function createFromSource(
|
|
265
273
|
db: Db.Db,
|
|
266
274
|
input: createFromSource.Input,
|
|
267
|
-
): Promise<
|
|
275
|
+
): Promise<RoutesDeposits.insertOrGetSource.Result> {
|
|
268
276
|
const stored = await record(db, {
|
|
269
277
|
detectionTrigger: 'chain',
|
|
270
278
|
now: input.now,
|
|
@@ -273,7 +281,7 @@ export async function createFromSource(
|
|
|
273
281
|
sourceTransactionHash: input.sourceTransactionHash,
|
|
274
282
|
sourceTransferIndex: input.sourceTransferIndex,
|
|
275
283
|
})
|
|
276
|
-
return
|
|
284
|
+
return RoutesDeposits.insertOrGetSource(db, {
|
|
277
285
|
...stored,
|
|
278
286
|
sourceTransferIndex: input.sourceTransferIndex,
|
|
279
287
|
})
|
|
@@ -296,12 +304,12 @@ export declare namespace createFromSource {
|
|
|
296
304
|
async function record(
|
|
297
305
|
db: Db.Db,
|
|
298
306
|
input: Omit<create.Input, 'providerRequestId'> & { providerRequestId: string | null },
|
|
299
|
-
): Promise<
|
|
307
|
+
): Promise<RoutesDeposits.Record> {
|
|
300
308
|
const now = input.now ?? new Date()
|
|
301
309
|
const depositAddressId = schema.Snapshot.shape.depositAddressId.parse(
|
|
302
310
|
input.snapshot.depositAddressId,
|
|
303
311
|
)
|
|
304
|
-
const address = await
|
|
312
|
+
const address = await RoutesDepositAddresses.get(db, depositAddressId)
|
|
305
313
|
if (!address) throw new DepositAddressNotFoundError(depositAddressId)
|
|
306
314
|
const snapshot = schema.Snapshot.parse({
|
|
307
315
|
...input.snapshot,
|
|
@@ -324,6 +332,7 @@ async function record(
|
|
|
324
332
|
orgId: address.orgId,
|
|
325
333
|
pollObservedAt: input.pollObservedAt ?? null,
|
|
326
334
|
projectId: address.projectId,
|
|
335
|
+
providerDeliveredAt: null,
|
|
327
336
|
providerOutputAmount: input.providerOutputAmount ?? null,
|
|
328
337
|
providerOutputToken: address.providerOutputToken,
|
|
329
338
|
providerRequestId: input.providerRequestId,
|
|
@@ -334,6 +343,7 @@ async function record(
|
|
|
334
343
|
]),
|
|
335
344
|
],
|
|
336
345
|
providerState: input.providerState ?? null,
|
|
346
|
+
providerSubsidy: input.providerSubsidy ?? null,
|
|
337
347
|
providerTransactionHashes: input.providerTransactionHashes ?? [],
|
|
338
348
|
providerTransferIndex: input.providerTransferIndex ?? 0,
|
|
339
349
|
retryState: input.retryState ?? null,
|
|
@@ -345,7 +355,9 @@ async function record(
|
|
|
345
355
|
sourceTransferIndex: input.sourceTransferIndex ?? null,
|
|
346
356
|
status: 'detected',
|
|
347
357
|
statusReason: null,
|
|
358
|
+
statusUpdatedAt: now.toISOString(),
|
|
348
359
|
subsidyAmount: input.subsidyAmount ?? null,
|
|
360
|
+
subsidyMeterReportedAt: null,
|
|
349
361
|
tempoGasPaid: input.tempoGasPaid ?? null,
|
|
350
362
|
updatedAt: now.toISOString(),
|
|
351
363
|
version: 1,
|
|
@@ -372,6 +384,8 @@ export declare namespace create {
|
|
|
372
384
|
providerRequestIds?: readonly string[] | undefined
|
|
373
385
|
/** Bounded private provider state. */
|
|
374
386
|
providerState?: PrivateState | undefined
|
|
387
|
+
/** Provider-paid subsidy amount and token. */
|
|
388
|
+
providerSubsidy?: Provider.Subsidy | undefined
|
|
375
389
|
/** Provider-leg transaction references. */
|
|
376
390
|
providerTransactionHashes?: readonly string[] | undefined
|
|
377
391
|
/** Deposit position within the provider request. */
|
|
@@ -402,7 +416,8 @@ export async function transition(
|
|
|
402
416
|
db: Db.Db,
|
|
403
417
|
options: transition.Options,
|
|
404
418
|
): Promise<transition.Result> {
|
|
405
|
-
const
|
|
419
|
+
const now = new Date()
|
|
420
|
+
const current = await RoutesDeposits.get(db, options.id)
|
|
406
421
|
if (!current) return { type: 'not_found' }
|
|
407
422
|
if (current.version !== options.expectedVersion) return { current, type: 'stale' }
|
|
408
423
|
const status = options.status ?? current.status
|
|
@@ -429,13 +444,13 @@ export async function transition(
|
|
|
429
444
|
sourceTransactionHashes: current.snapshot.sourceTransactionHashes,
|
|
430
445
|
})
|
|
431
446
|
|
|
432
|
-
const
|
|
433
|
-
|
|
434
|
-
id: options.id,
|
|
447
|
+
const changes = {
|
|
448
|
+
providerDeliveredAt: current.providerDeliveredAt ?? options.providerDeliveredAt ?? null,
|
|
435
449
|
providerOutputAmount: options.providerOutputAmount ?? current.providerOutputAmount,
|
|
436
450
|
providerRequestId: current.providerRequestId ?? options.providerRequestId ?? null,
|
|
437
451
|
providerRequestIds: options.providerRequestIds ?? current.providerRequestIds,
|
|
438
452
|
providerState: options.providerState ?? current.providerState,
|
|
453
|
+
providerSubsidy: current.providerSubsidy ?? options.providerSubsidy ?? null,
|
|
439
454
|
providerTransactionHashes:
|
|
440
455
|
options.providerTransactionHashes ?? current.providerTransactionHashes,
|
|
441
456
|
providerTransferIndex: options.providerTransferIndex ?? current.providerTransferIndex,
|
|
@@ -449,11 +464,27 @@ export async function transition(
|
|
|
449
464
|
statusReason: options.statusReason ?? (status === current.status ? current.statusReason : null),
|
|
450
465
|
subsidyAmount: options.subsidyAmount ?? current.subsidyAmount,
|
|
451
466
|
tempoGasPaid: options.tempoGasPaid ?? current.tempoGasPaid,
|
|
452
|
-
|
|
467
|
+
}
|
|
468
|
+
if (
|
|
469
|
+
Object.entries(changes).every(([key, value]) =>
|
|
470
|
+
sameValue(current[key as keyof typeof changes], value),
|
|
471
|
+
)
|
|
472
|
+
)
|
|
473
|
+
return { record: current, type: 'unchanged' }
|
|
474
|
+
|
|
475
|
+
const updated = await RoutesDeposits.update(db, {
|
|
476
|
+
...changes,
|
|
477
|
+
expectedVersion: options.expectedVersion,
|
|
478
|
+
id: options.id,
|
|
479
|
+
statusUpdatedAt:
|
|
480
|
+
status === current.status
|
|
481
|
+
? (current.statusUpdatedAt ?? current.updatedAt)
|
|
482
|
+
: now.toISOString(),
|
|
483
|
+
updatedAt: now.toISOString(),
|
|
453
484
|
version: current.version + 1,
|
|
454
485
|
})
|
|
455
486
|
if (updated) return { record: updated, type: 'applied' }
|
|
456
|
-
const latest = await
|
|
487
|
+
const latest = await RoutesDeposits.get(db, options.id)
|
|
457
488
|
return latest ? { current: latest, type: 'stale' } : { type: 'not_found' }
|
|
458
489
|
}
|
|
459
490
|
|
|
@@ -462,8 +493,10 @@ export declare namespace transition {
|
|
|
462
493
|
type Options = {
|
|
463
494
|
/** Version that the change was computed against. */
|
|
464
495
|
expectedVersion: number
|
|
465
|
-
/**
|
|
496
|
+
/** Route deposit id (`rdp_…`). */
|
|
466
497
|
id: string
|
|
498
|
+
/** When provider delivery was first verified. */
|
|
499
|
+
providerDeliveredAt?: string | undefined
|
|
467
500
|
/** Provider output amount confirmed on Tempo. */
|
|
468
501
|
providerOutputAmount?: z.output<typeof Schema.TokenAmount> | undefined
|
|
469
502
|
/** Provider request attached after chain-first detection. */
|
|
@@ -472,6 +505,8 @@ export declare namespace transition {
|
|
|
472
505
|
providerRequestIds?: readonly string[] | undefined
|
|
473
506
|
/** Bounded private provider state. */
|
|
474
507
|
providerState?: PrivateState | undefined
|
|
508
|
+
/** Provider-paid subsidy amount and token. */
|
|
509
|
+
providerSubsidy?: Provider.Subsidy | undefined
|
|
475
510
|
/** Provider-leg transaction references. */
|
|
476
511
|
providerTransactionHashes?: readonly string[] | undefined
|
|
477
512
|
/** Deposit position within the attached provider request. */
|
|
@@ -498,15 +533,16 @@ export declare namespace transition {
|
|
|
498
533
|
|
|
499
534
|
/** Outcome of a guarded deposit transition. */
|
|
500
535
|
type Result =
|
|
501
|
-
| { record:
|
|
502
|
-
| {
|
|
503
|
-
| { current:
|
|
536
|
+
| { record: RoutesDeposits.Record; type: 'applied' }
|
|
537
|
+
| { record: RoutesDeposits.Record; type: 'unchanged' }
|
|
538
|
+
| { current: RoutesDeposits.Record; type: 'invalid' }
|
|
539
|
+
| { current: RoutesDeposits.Record; type: 'stale' }
|
|
504
540
|
| { type: 'not_found' }
|
|
505
541
|
}
|
|
506
542
|
|
|
507
543
|
/** Serializes a stored deposit to the public read shape. */
|
|
508
|
-
export function toPublic(record:
|
|
509
|
-
return schema.
|
|
544
|
+
export function toPublic(record: RoutesDeposits.Record): Public {
|
|
545
|
+
return schema.RoutesDeposit.parse({
|
|
510
546
|
...record.snapshot,
|
|
511
547
|
createdAt: record.createdAt,
|
|
512
548
|
...(record.detectionTrigger === null ? {} : { detectionTrigger: record.detectionTrigger }),
|
|
@@ -520,10 +556,22 @@ export function toPublic(record: FundingDeposits.Record): Public {
|
|
|
520
556
|
})
|
|
521
557
|
}
|
|
522
558
|
|
|
559
|
+
function sameValue(left: unknown, right: unknown): boolean {
|
|
560
|
+
if (left === right) return true
|
|
561
|
+
const serialize = (value: unknown) =>
|
|
562
|
+
JSON.stringify(value, (_key, entry: unknown) => {
|
|
563
|
+
if (!entry || typeof entry !== 'object' || Array.isArray(entry)) return entry
|
|
564
|
+
return Object.fromEntries(
|
|
565
|
+
Object.entries(entry).sort(([left], [right]) => left.localeCompare(right)),
|
|
566
|
+
)
|
|
567
|
+
})
|
|
568
|
+
return serialize(left) === serialize(right)
|
|
569
|
+
}
|
|
570
|
+
|
|
523
571
|
class DepositAddressNotFoundError extends Error {
|
|
524
|
-
override name = '
|
|
572
|
+
override name = 'RoutesDeposit.DepositAddressNotFoundError'
|
|
525
573
|
|
|
526
574
|
constructor(id: string) {
|
|
527
|
-
super(`
|
|
575
|
+
super(`Route deposit address ${id} not found`)
|
|
528
576
|
}
|
|
529
577
|
}
|