tapimo 0.15.0 → 0.18.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 +137 -0
- package/dist/ApiKey.d.ts +1 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +4 -2
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +37 -11
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +163 -10
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +13085 -11974
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +46 -15
- package/dist/App.js.map +1 -1
- package/dist/Scope.d.ts +1 -1
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +1 -1
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +896 -191
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +5 -1
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +33 -33
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +8 -3
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +66 -27
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
- package/dist/admin/apps/earn-vaults.js +36 -7
- package/dist/admin/apps/earn-vaults.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +25 -25
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/organizations.js +5 -4
- package/dist/admin/apps/organizations.js.map +1 -1
- package/dist/admin/apps/route-policies.d.ts +632 -0
- package/dist/admin/apps/route-policies.d.ts.map +1 -0
- package/dist/admin/apps/route-policies.js +257 -0
- package/dist/admin/apps/route-policies.js.map +1 -0
- package/dist/admin/apps/routes-support.js +39 -3
- package/dist/admin/apps/routes-support.js.map +1 -1
- package/dist/admin/apps/routes.d.ts +454 -1
- package/dist/admin/apps/routes.d.ts.map +1 -1
- package/dist/admin/apps/routes.js +82 -1
- package/dist/admin/apps/routes.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +10 -4
- package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.js +24 -4
- package/dist/admin/apps/verified-tokens.js.map +1 -1
- package/dist/admin/index.d.ts +0 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +0 -1
- package/dist/admin/index.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 +99 -103
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +65 -1
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +1 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +58 -59
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/data/App.d.ts +2709 -2670
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +5 -5
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +50 -0
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +248 -248
- package/dist/apps/data/routes/balances.d.ts +22 -22
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +5 -7
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/coingecko.d.ts +54 -54
- package/dist/apps/data/routes/earn.d.ts +103 -12
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +456 -220
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +267 -97
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +1 -19
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +93 -56
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +10 -10
- package/dist/apps/data/routes/rpc.d.ts +30 -30
- package/dist/apps/data/routes/rpc.js +45 -11
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +11 -6
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +2 -0
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +30 -22
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +12 -12
- package/dist/apps/data/routes/valuation.d.ts +30 -30
- package/dist/apps/data/routes/verified-tokens.d.ts +5 -5
- package/dist/apps/data/routes/webhooks.d.ts +1 -1
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +18 -11
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +3 -3
- package/dist/apps/management/App.d.ts +3043 -2198
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +2 -0
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/Billing.d.ts +2 -4
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +65 -26
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +16 -4
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +70 -11
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +84 -84
- package/dist/apps/management/routes/cli.d.ts +912 -0
- package/dist/apps/management/routes/cli.d.ts.map +1 -0
- package/dist/apps/management/routes/cli.js +416 -0
- package/dist/apps/management/routes/cli.js.map +1 -0
- package/dist/apps/management/routes/faucet.d.ts +8 -8
- package/dist/apps/management/routes/invitations.d.ts +24 -24
- package/dist/apps/management/routes/invite-links.d.ts +66 -66
- package/dist/apps/management/routes/members.d.ts +16 -16
- package/dist/apps/management/routes/orgs.d.ts +20 -20
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +8 -2
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +76 -76
- package/dist/apps/management/routes/usage.d.ts +8 -8
- package/dist/apps/management/routes/verified-token-requests.d.ts +42 -42
- package/dist/apps/management/routes/verified-token-requests.d.ts.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.js +7 -9
- package/dist/apps/management/routes/verified-token-requests.js.map +1 -1
- package/dist/apps/management/routes/webhooks.d.ts +119 -119
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +16 -3
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Policy.js +4 -2
- package/dist/apps/mpp/internal/Policy.js.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.js +6 -4
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -1
- package/dist/apps/relay/App.d.ts +8 -0
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +16 -4
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +4 -6
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +71 -60
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/apps/routes/Access.d.ts +53 -0
- package/dist/apps/routes/Access.d.ts.map +1 -1
- package/dist/apps/routes/Access.js +121 -0
- package/dist/apps/routes/Access.js.map +1 -1
- package/dist/apps/routes/App.d.ts +397 -158
- package/dist/apps/routes/App.d.ts.map +1 -1
- package/dist/apps/routes/App.js.map +1 -1
- package/dist/apps/routes/routes/deposit-addresses.d.ts +169 -61
- package/dist/apps/routes/routes/deposit-addresses.d.ts.map +1 -1
- package/dist/apps/routes/routes/deposit-addresses.js +217 -32
- package/dist/apps/routes/routes/deposit-addresses.js.map +1 -1
- package/dist/apps/routes/routes/quotes.d.ts +90 -0
- package/dist/apps/routes/routes/quotes.d.ts.map +1 -1
- package/dist/apps/routes/routes/quotes.js +101 -27
- package/dist/apps/routes/routes/quotes.js.map +1 -1
- package/dist/apps/routes/routes/transfers.d.ts +187 -135
- package/dist/apps/routes/routes/transfers.d.ts.map +1 -1
- package/dist/apps/routes/routes/transfers.js +182 -37
- package/dist/apps/routes/routes/transfers.js.map +1 -1
- package/dist/cli/ApiKeys.d.ts +120 -0
- package/dist/cli/ApiKeys.d.ts.map +1 -0
- package/dist/cli/ApiKeys.js +138 -0
- package/dist/cli/ApiKeys.js.map +1 -0
- package/dist/cli/Cli.d.ts +92 -34
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/Cli.js +188 -11
- package/dist/cli/Cli.js.map +1 -1
- package/dist/cli/Credentials.d.ts +95 -0
- package/dist/cli/Credentials.d.ts.map +1 -0
- package/dist/cli/Credentials.js +110 -0
- package/dist/cli/Credentials.js.map +1 -0
- package/dist/cli/Spec.d.ts +59 -0
- package/dist/cli/Spec.d.ts.map +1 -0
- package/dist/cli/Spec.js +77 -0
- package/dist/cli/Spec.js.map +1 -0
- package/dist/cli/bin.js +5 -1
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/commands/admin.d.ts +5 -5
- package/dist/cli/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/auth.d.ts +73 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +204 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/keys.d.ts +17 -0
- package/dist/cli/commands/keys.d.ts.map +1 -0
- package/dist/cli/commands/keys.js +109 -0
- package/dist/cli/commands/keys.js.map +1 -0
- package/dist/cloudflare.d.ts +27 -2
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +144 -17
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +23 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +418 -1
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +44 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +56 -3
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/apiKeyAdmissions.d.ts +28 -2
- package/dist/db/tables/apiKeyAdmissions.d.ts.map +1 -1
- package/dist/db/tables/apiKeyAdmissions.js +65 -9
- package/dist/db/tables/apiKeyAdmissions.js.map +1 -1
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts +2 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts.map +1 -1
- package/dist/db/tables/apiKeyOwnerTombstones.js +2 -2
- package/dist/db/tables/apiKeyOwnerTombstones.js.map +1 -1
- package/dist/db/tables/authAccounts.d.ts.map +1 -1
- package/dist/db/tables/authAccounts.js +1 -0
- package/dist/db/tables/authAccounts.js.map +1 -1
- package/dist/db/tables/earnVaults.d.ts +5 -1
- package/dist/db/tables/earnVaults.d.ts.map +1 -1
- package/dist/db/tables/earnVaults.js +12 -1
- package/dist/db/tables/earnVaults.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +4 -2
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +8 -34
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts +5 -1
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js +10 -2
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/rewardEligibilityAssociations.d.ts +13 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts.map +1 -1
- package/dist/db/tables/rewardEligibilityAssociations.js +11 -0
- package/dist/db/tables/rewardEligibilityAssociations.js.map +1 -1
- package/dist/db/tables/rewardRuns.d.ts.map +1 -1
- package/dist/db/tables/rewardRuns.js +4 -0
- package/dist/db/tables/rewardRuns.js.map +1 -1
- package/dist/db/tables/rewardTransactionAttempts.d.ts.map +1 -1
- package/dist/db/tables/rewardTransactionAttempts.js +2 -0
- package/dist/db/tables/rewardTransactionAttempts.js.map +1 -1
- package/dist/db/tables/routesDepositAddresses.d.ts +29 -0
- package/dist/db/tables/routesDepositAddresses.d.ts.map +1 -1
- package/dist/db/tables/routesDepositAddresses.js +84 -31
- package/dist/db/tables/routesDepositAddresses.js.map +1 -1
- package/dist/db/tables/routesDeposits.d.ts.map +1 -1
- package/dist/db/tables/routesDeposits.js +31 -21
- package/dist/db/tables/routesDeposits.js.map +1 -1
- package/dist/db/tables/routesIdempotency.d.ts.map +1 -1
- package/dist/db/tables/routesIdempotency.js +2 -0
- package/dist/db/tables/routesIdempotency.js.map +1 -1
- package/dist/db/tables/routesPolicies.d.ts +58 -0
- package/dist/db/tables/routesPolicies.d.ts.map +1 -0
- package/dist/db/tables/routesPolicies.js +198 -0
- package/dist/db/tables/routesPolicies.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts +22 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts.map +1 -1
- package/dist/db/tables/routesTransferSubsidies.js +41 -0
- package/dist/db/tables/routesTransferSubsidies.js.map +1 -1
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts.map +1 -1
- package/dist/db/tables/routesTransferSubsidyNonces.js +12 -4
- package/dist/db/tables/routesTransferSubsidyNonces.js.map +1 -1
- package/dist/db/tables/routesTransfers.d.ts +26 -1
- package/dist/db/tables/routesTransfers.d.ts.map +1 -1
- package/dist/db/tables/routesTransfers.js +36 -6
- package/dist/db/tables/routesTransfers.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts +45 -13
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +144 -33
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/users.d.ts +2 -0
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +11 -0
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/verifiedTokenRequests.d.ts +21 -4
- package/dist/db/tables/verifiedTokenRequests.d.ts.map +1 -1
- package/dist/db/tables/verifiedTokenRequests.js +65 -44
- package/dist/db/tables/verifiedTokenRequests.js.map +1 -1
- package/dist/handlers/internal/multisig.d.ts +1 -1
- package/dist/handlers/internal/multisig.d.ts.map +1 -1
- package/dist/handlers/internal/multisig.js +3 -2
- package/dist/handlers/internal/multisig.js.map +1 -1
- package/dist/handlers/relay.d.ts +2 -0
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +34 -15
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +73 -6
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +212 -85
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/BetterAuth.d.ts +22 -0
- package/dist/internal/BetterAuth.d.ts.map +1 -1
- package/dist/internal/BetterAuth.js +17 -14
- package/dist/internal/BetterAuth.js.map +1 -1
- package/dist/internal/Cache.d.ts +5 -0
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +3 -1
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/CliAuth.d.ts +243 -0
- package/dist/internal/CliAuth.d.ts.map +1 -0
- package/dist/internal/CliAuth.js +249 -0
- package/dist/internal/CliAuth.js.map +1 -0
- package/dist/internal/EarnSharePrices.d.ts +1 -1
- package/dist/internal/EarnSharePrices.d.ts.map +1 -1
- package/dist/internal/EarnSharePrices.js +7 -3
- package/dist/internal/EarnSharePrices.js.map +1 -1
- package/dist/internal/EarnVaults.d.ts +47 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -1
- package/dist/internal/EarnVaults.js +188 -4
- package/dist/internal/EarnVaults.js.map +1 -1
- package/dist/internal/EarnWithdrawals.d.ts +73 -0
- package/dist/internal/EarnWithdrawals.d.ts.map +1 -0
- package/dist/internal/EarnWithdrawals.js +189 -0
- package/dist/internal/EarnWithdrawals.js.map +1 -0
- package/dist/internal/ExecutionContext.d.ts +21 -0
- package/dist/internal/ExecutionContext.d.ts.map +1 -0
- package/dist/internal/ExecutionContext.js +16 -0
- package/dist/internal/ExecutionContext.js.map +1 -0
- package/dist/internal/Log.d.ts +7 -3
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +163 -130
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +26 -1
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/RateLimit.d.ts +67 -0
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +174 -27
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Store.d.ts +6 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +4 -5
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Timing.d.ts +6 -0
- package/dist/internal/Timing.d.ts.map +1 -1
- package/dist/internal/Timing.js +21 -1
- package/dist/internal/Timing.js.map +1 -1
- package/dist/internal/Tron.d.ts +124 -0
- package/dist/internal/Tron.d.ts.map +1 -0
- package/dist/internal/Tron.js +202 -0
- package/dist/internal/Tron.js.map +1 -0
- package/dist/internal/Viem.d.ts +4 -0
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +25 -6
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/rewards/Read.d.ts +2 -2
- package/dist/internal/rewards/Read.d.ts.map +1 -1
- package/dist/internal/rewards/Read.js +11 -2
- package/dist/internal/rewards/Read.js.map +1 -1
- package/dist/internal/routes/Action.d.ts +27 -0
- package/dist/internal/routes/Action.d.ts.map +1 -1
- package/dist/internal/routes/Action.js +49 -1
- package/dist/internal/routes/Action.js.map +1 -1
- package/dist/internal/routes/Chain.d.ts +2 -0
- package/dist/internal/routes/Chain.d.ts.map +1 -1
- package/dist/internal/routes/Chain.js +4 -0
- package/dist/internal/routes/Chain.js.map +1 -1
- package/dist/internal/routes/DepositAddress.d.ts.map +1 -1
- package/dist/internal/routes/DepositAddress.js +5 -0
- package/dist/internal/routes/DepositAddress.js.map +1 -1
- package/dist/internal/routes/Evidence.d.ts.map +1 -1
- package/dist/internal/routes/Evidence.js +6 -2
- package/dist/internal/routes/Evidence.js.map +1 -1
- package/dist/internal/routes/EvmTransferSettlement.d.ts +17 -0
- package/dist/internal/routes/EvmTransferSettlement.d.ts.map +1 -0
- package/dist/internal/routes/EvmTransferSettlement.js +196 -0
- package/dist/internal/routes/EvmTransferSettlement.js.map +1 -0
- package/dist/internal/routes/Policy.d.ts +161 -0
- package/dist/internal/routes/Policy.d.ts.map +1 -0
- package/dist/internal/routes/Policy.js +249 -0
- package/dist/internal/routes/Policy.js.map +1 -0
- package/dist/internal/routes/Provider.d.ts +66 -3
- package/dist/internal/routes/Provider.d.ts.map +1 -1
- package/dist/internal/routes/Provider.js +106 -27
- package/dist/internal/routes/Provider.js.map +1 -1
- package/dist/internal/routes/Quota.d.ts +57 -0
- package/dist/internal/routes/Quota.d.ts.map +1 -0
- package/dist/internal/routes/Quota.js +144 -0
- package/dist/internal/routes/Quota.js.map +1 -0
- package/dist/internal/routes/Reconciliation.d.ts.map +1 -1
- package/dist/internal/routes/Reconciliation.js +163 -47
- package/dist/internal/routes/Reconciliation.js.map +1 -1
- package/dist/internal/routes/SolanaTransferSettlement.d.ts +12 -0
- package/dist/internal/routes/SolanaTransferSettlement.d.ts.map +1 -0
- package/dist/internal/routes/SolanaTransferSettlement.js +220 -0
- package/dist/internal/routes/SolanaTransferSettlement.js.map +1 -0
- package/dist/internal/routes/SolanaTransferSubsidy.d.ts +172 -0
- package/dist/internal/routes/SolanaTransferSubsidy.d.ts.map +1 -0
- package/dist/internal/routes/SolanaTransferSubsidy.js +564 -0
- package/dist/internal/routes/SolanaTransferSubsidy.js.map +1 -0
- package/dist/internal/routes/Subsidy.d.ts +2 -2
- package/dist/internal/routes/Subsidy.d.ts.map +1 -1
- package/dist/internal/routes/Subsidy.js +2 -2
- package/dist/internal/routes/Subsidy.js.map +1 -1
- package/dist/internal/routes/Transfer.d.ts +229 -1
- package/dist/internal/routes/Transfer.d.ts.map +1 -1
- package/dist/internal/routes/Transfer.js +644 -7
- package/dist/internal/routes/Transfer.js.map +1 -1
- package/dist/internal/routes/TransferReconciliation.d.ts +6 -0
- package/dist/internal/routes/TransferReconciliation.d.ts.map +1 -1
- package/dist/internal/routes/TransferReconciliation.js +83 -159
- package/dist/internal/routes/TransferReconciliation.js.map +1 -1
- package/dist/internal/routes/TransferSettlement.d.ts +45 -0
- package/dist/internal/routes/TransferSettlement.d.ts.map +1 -0
- package/dist/internal/routes/TransferSettlement.js +2 -0
- package/dist/internal/routes/TransferSettlement.js.map +1 -0
- package/dist/internal/routes/TransferSubsidy.d.ts +23 -8
- package/dist/internal/routes/TransferSubsidy.d.ts.map +1 -1
- package/dist/internal/routes/TransferSubsidy.js +64 -5
- package/dist/internal/routes/TransferSubsidy.js.map +1 -1
- package/dist/internal/routes/TronTransferSettlement.d.ts +12 -0
- package/dist/internal/routes/TronTransferSettlement.d.ts.map +1 -0
- package/dist/internal/routes/TronTransferSettlement.js +201 -0
- package/dist/internal/routes/TronTransferSettlement.js.map +1 -0
- package/dist/internal/routes/TronTransferSubsidy.d.ts +174 -0
- package/dist/internal/routes/TronTransferSubsidy.d.ts.map +1 -0
- package/dist/internal/routes/TronTransferSubsidy.js +439 -0
- package/dist/internal/routes/TronTransferSubsidy.js.map +1 -0
- package/dist/internal/routes/index.d.ts +3 -0
- package/dist/internal/routes/index.d.ts.map +1 -1
- package/dist/internal/routes/index.js +3 -0
- package/dist/internal/routes/index.js.map +1 -1
- package/dist/internal/routes/providers/across.d.ts +3 -0
- package/dist/internal/routes/providers/across.d.ts.map +1 -1
- package/dist/internal/routes/providers/across.js +11 -0
- package/dist/internal/routes/providers/across.js.map +1 -1
- package/dist/internal/routes/providers/legacyMesh.d.ts +29 -0
- package/dist/internal/routes/providers/legacyMesh.d.ts.map +1 -0
- package/dist/internal/routes/providers/legacyMesh.js +474 -0
- package/dist/internal/routes/providers/legacyMesh.js.map +1 -0
- package/dist/internal/routes/providers/legacyMeshDelivery.d.ts +59 -0
- package/dist/internal/routes/providers/legacyMeshDelivery.d.ts.map +1 -0
- package/dist/internal/routes/providers/legacyMeshDelivery.js +229 -0
- package/dist/internal/routes/providers/legacyMeshDelivery.js.map +1 -0
- package/dist/internal/routes/providers/legacyMeshOutbound.d.ts +19 -0
- package/dist/internal/routes/providers/legacyMeshOutbound.d.ts.map +1 -0
- package/dist/internal/routes/providers/legacyMeshOutbound.js +457 -0
- package/dist/internal/routes/providers/legacyMeshOutbound.js.map +1 -0
- package/dist/internal/routes/providers/legacyMeshOutboundDelivery.d.ts +123 -0
- package/dist/internal/routes/providers/legacyMeshOutboundDelivery.d.ts.map +1 -0
- package/dist/internal/routes/providers/legacyMeshOutboundDelivery.js +333 -0
- package/dist/internal/routes/providers/legacyMeshOutboundDelivery.js.map +1 -0
- package/dist/internal/routes/providers/propAmm.d.ts +70 -0
- package/dist/internal/routes/providers/propAmm.d.ts.map +1 -0
- package/dist/internal/routes/providers/propAmm.js +524 -0
- package/dist/internal/routes/providers/propAmm.js.map +1 -0
- package/dist/internal/routes/providers/relay.d.ts +4 -1
- package/dist/internal/routes/providers/relay.d.ts.map +1 -1
- package/dist/internal/routes/providers/relay.js +353 -42
- package/dist/internal/routes/providers/relay.js.map +1 -1
- package/dist/internal/routes/providers/rhino.d.ts +3 -0
- package/dist/internal/routes/providers/rhino.d.ts.map +1 -1
- package/dist/internal/routes/providers/rhino.js +11 -0
- package/dist/internal/routes/providers/rhino.js.map +1 -1
- package/dist/internal/routes/providers/squid.d.ts +3 -0
- package/dist/internal/routes/providers/squid.d.ts.map +1 -1
- package/dist/internal/routes/providers/squid.js +19 -0
- package/dist/internal/routes/providers/squid.js.map +1 -1
- package/dist/internal/routes/providers/stargate.d.ts.map +1 -1
- package/dist/internal/routes/providers/stargate.js +22 -9
- package/dist/internal/routes/providers/stargate.js.map +1 -1
- package/dist/internal/routes/providers/symbiosis.d.ts.map +1 -1
- package/dist/internal/routes/providers/symbiosis.js +13 -17
- package/dist/internal/routes/providers/symbiosis.js.map +1 -1
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +6 -0
- package/dist/providers/index.js.map +1 -1
- package/package.json +16 -6
- package/src/ApiKey.ts +7 -3
- package/src/ApiKeys.test.ts +652 -8
- package/src/ApiKeys.ts +191 -11
- package/src/App.test.ts +405 -18
- package/src/App.ts +51 -15
- package/src/Client.test-d.ts +157 -10
- package/src/Client.test.ts +4 -4
- package/src/Scope.ts +1 -2
- package/src/admin/App.ts +11 -5
- package/src/admin/apps/api-keys.test.ts +98 -2
- package/src/admin/apps/api-keys.ts +21 -12
- package/src/admin/apps/earn-vaults.test.ts +76 -7
- package/src/admin/apps/earn-vaults.ts +47 -8
- package/src/admin/apps/organizations.test.ts +147 -31
- package/src/admin/apps/organizations.ts +5 -4
- package/src/admin/apps/route-policies.test.ts +220 -0
- package/src/admin/apps/route-policies.ts +322 -0
- package/src/admin/apps/routes-support.test.ts +107 -2
- package/src/admin/apps/routes-support.ts +43 -3
- package/src/admin/apps/routes.test.ts +150 -0
- package/src/admin/apps/routes.ts +97 -1
- package/src/admin/apps/scopes.test.ts +1 -1
- package/src/admin/apps/verified-tokens.test.ts +32 -0
- package/src/admin/apps/verified-tokens.ts +30 -4
- package/src/admin/index.ts +0 -1
- package/src/admin/ui/plugin.ts +2 -1
- package/src/admin/ui/src/components/Dialog.tsx +1 -1
- package/src/admin/ui/src/components/EarnVaultForm.tsx +45 -0
- package/src/admin/ui/src/components/RoutePicker.tsx +79 -0
- package/src/admin/ui/src/lib/earn-vaults.ts +1 -1
- package/src/admin/ui/src/lib/route-policies.test.ts +452 -0
- package/src/admin/ui/src/lib/route-policies.ts +232 -0
- package/src/admin/ui/src/lib/routes.ts +34 -0
- package/src/admin/ui/src/lib/verified-tokens.ts +24 -9
- package/src/admin/ui/src/routeTree.gen.ts +21 -0
- package/src/admin/ui/src/routes/__root.tsx +1 -1
- package/src/admin/ui/src/routes/api-keys.tsx +21 -2
- package/src/admin/ui/src/routes/early-access.tsx +1 -0
- package/src/admin/ui/src/routes/earn.vaults.tsx +1 -0
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +22 -0
- package/src/admin/ui/src/routes/earn.vaults_.new.tsx +10 -0
- package/src/admin/ui/src/routes/organizations.tsx +35 -4
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +18 -3
- package/src/admin/ui/src/routes/route-policies.tsx +678 -0
- package/src/admin/ui/src/routes/routes.tsx +85 -2
- package/src/admin/ui/src/routes/routes_.support.tsx +6 -22
- package/src/admin/ui/src/routes/subsidies.tsx +1 -0
- package/src/admin/ui/src/routes/verified-tokens.tsx +65 -20
- package/src/admin/ui.generated.ts +99 -104
- package/src/analytics/Analytics.test.ts +4 -50
- package/src/analytics/Analytics.ts +65 -1
- package/src/analytics/tables/requestEvents.test.ts +402 -1
- package/src/analytics/tables/requestEvents.ts +62 -93
- package/src/apps/data/App.test.ts +26 -0
- package/src/apps/data/routes/activities.test.ts +315 -14
- package/src/apps/data/routes/activities.ts +60 -0
- package/src/apps/data/routes/balances.ts +5 -7
- package/src/apps/data/routes/earn.bench.ts +18 -0
- package/src/apps/data/routes/earn.local.test.ts +507 -0
- package/src/apps/data/routes/earn.test.ts +405 -127
- package/src/apps/data/routes/earn.ts +660 -270
- package/src/apps/data/routes/exchanges.bench.ts +3 -1
- package/src/apps/data/routes/exchanges.test.ts +166 -2
- package/src/apps/data/routes/exchanges.ts +308 -101
- package/src/apps/data/routes/fee-amm.test.ts +153 -2
- package/src/apps/data/routes/fee-amm.ts +132 -62
- package/src/apps/data/routes/receipts.test.ts +21 -18
- package/src/apps/data/routes/rpc.test.ts +34 -2
- package/src/apps/data/routes/rpc.ts +47 -10
- package/src/apps/data/routes/tokens.provenance.test.ts +157 -0
- package/src/apps/data/routes/tokens.test.ts +4 -4
- package/src/apps/data/routes/tokens.ts +11 -6
- package/src/apps/data/routes/transactions.test.ts +29 -0
- package/src/apps/data/routes/transactions.ts +33 -22
- package/src/apps/data/routes/webhooks.scan.test.ts +29 -0
- package/src/apps/data/routes/webhooks.test.ts +18 -3
- package/src/apps/data/routes/webhooks.ts +27 -13
- package/src/apps/management/App.ts +4 -0
- package/src/apps/management/Billing.test.ts +253 -27
- package/src/apps/management/Billing.ts +83 -29
- package/src/apps/management/routes/api-keys.test.ts +1 -1
- package/src/apps/management/routes/api-keys.ts +85 -11
- package/src/apps/management/routes/billing.test.ts +68 -4
- package/src/apps/management/routes/cli.test.ts +370 -0
- package/src/apps/management/routes/cli.ts +533 -0
- package/src/apps/management/routes/me.test.ts +14 -4
- package/src/apps/management/routes/orgs.test.ts +108 -4
- package/src/apps/management/routes/orgs.ts +7 -2
- package/src/apps/management/routes/usage.test.ts +2 -2
- package/src/apps/management/routes/verified-token-requests.test.ts +16 -2
- package/src/apps/management/routes/verified-token-requests.ts +7 -10
- package/src/apps/mcp.test.ts +108 -25
- package/src/apps/mcp.ts +15 -3
- package/src/apps/mpp/internal/Policy.test.ts +51 -4
- package/src/apps/mpp/internal/Policy.ts +6 -2
- package/src/apps/mpp/internal/Sponsorship.test.ts +29 -0
- package/src/apps/mpp/internal/Sponsorship.ts +6 -4
- package/src/apps/relay/App.test.ts +85 -1
- package/src/apps/relay/App.ts +28 -4
- package/src/apps/relay/Sponsorships.test.ts +97 -1
- package/src/apps/relay/Sponsorships.ts +77 -66
- package/src/apps/routes/Access.test.ts +319 -0
- package/src/apps/routes/Access.ts +147 -0
- package/src/apps/routes/App.ts +10 -0
- package/src/apps/routes/routes/chains.test.ts +3 -2
- package/src/apps/routes/routes/deposit-addresses.test.ts +978 -34
- package/src/apps/routes/routes/deposit-addresses.ts +243 -32
- package/src/apps/routes/routes/propAmm.local.test.ts +951 -0
- package/src/apps/routes/routes/quotes.test.ts +81 -8
- package/src/apps/routes/routes/quotes.ts +109 -27
- package/src/apps/routes/routes/transfers.test.ts +252 -15
- package/src/apps/routes/routes/transfers.ts +212 -33
- package/src/cli/ApiKeys.test.ts +265 -0
- package/src/cli/ApiKeys.ts +189 -0
- package/src/cli/Cli.test.ts +188 -0
- package/src/cli/Cli.ts +280 -12
- package/src/cli/Credentials.test.ts +122 -0
- package/src/cli/Credentials.ts +144 -0
- package/src/cli/Spec.test.ts +133 -0
- package/src/cli/Spec.ts +132 -0
- package/src/cli/bin.test.ts +49 -0
- package/src/cli/bin.ts +5 -1
- package/src/cli/commands/auth.test.ts +138 -0
- package/src/cli/commands/auth.ts +254 -0
- package/src/cli/commands/keys.test.ts +68 -0
- package/src/cli/commands/keys.ts +125 -0
- package/src/cloudflare.ts +184 -36
- package/src/db/Db.test.ts +877 -0
- package/src/db/Db.ts +507 -1
- package/src/db/Schema.ts +75 -4
- package/src/db/tables/apiKeyAdmissions.test.ts +57 -0
- package/src/db/tables/apiKeyAdmissions.ts +101 -11
- package/src/db/tables/apiKeyOwnerTombstones.ts +2 -2
- package/src/db/tables/authAccounts.test.ts +30 -0
- package/src/db/tables/authAccounts.ts +1 -0
- package/src/db/tables/earnVaults.test.ts +34 -0
- package/src/db/tables/earnVaults.ts +17 -2
- package/src/db/tables/organizations.test.ts +148 -84
- package/src/db/tables/organizations.ts +11 -43
- package/src/db/tables/requestUsage.ts +13 -2
- package/src/db/tables/rewardCampaigns.test.ts +163 -0
- package/src/db/tables/rewardEligibilityAssociations.test.ts +14 -0
- package/src/db/tables/rewardEligibilityAssociations.ts +24 -0
- package/src/db/tables/rewardRuns.ts +4 -0
- package/src/db/tables/rewardTransactionAttempts.ts +2 -0
- package/src/db/tables/routesDepositAddresses.test.ts +263 -0
- package/src/db/tables/routesDepositAddresses.ts +118 -34
- package/src/db/tables/routesDeposits.test.ts +133 -0
- package/src/db/tables/routesDeposits.ts +47 -26
- package/src/db/tables/routesIdempotency.test.ts +80 -0
- package/src/db/tables/routesIdempotency.ts +2 -0
- package/src/db/tables/routesPolicies.test.ts +143 -0
- package/src/db/tables/routesPolicies.ts +251 -0
- package/src/db/tables/routesTransferSubsidies.ts +64 -0
- package/src/db/tables/routesTransferSubsidyNonces.ts +16 -4
- package/src/db/tables/routesTransfers.test.ts +183 -2
- package/src/db/tables/routesTransfers.ts +65 -6
- package/src/db/tables/sponsoredTransactions.test.ts +351 -76
- package/src/db/tables/sponsoredTransactions.ts +182 -38
- package/src/db/tables/users.test.ts +51 -0
- package/src/db/tables/users.ts +12 -0
- package/src/db/tables/verifiedTokenRequests.test.ts +39 -20
- package/src/db/tables/verifiedTokenRequests.ts +80 -44
- package/src/handlers/internal/multisig.store.test.ts +120 -0
- package/src/handlers/internal/multisig.test.ts +389 -0
- package/src/handlers/internal/multisig.ts +13 -10
- package/src/handlers/relay.test.ts +259 -83
- package/src/handlers/relay.ts +36 -17
- package/src/internal/Auth.test.ts +383 -8
- package/src/internal/Auth.ts +272 -99
- package/src/internal/BetterAuth.test.ts +58 -22
- package/src/internal/BetterAuth.ts +23 -17
- package/src/internal/Cache.ts +3 -1
- package/src/internal/CliAuth.test.ts +279 -0
- package/src/internal/CliAuth.ts +319 -0
- package/src/internal/EarnSharePrices.test.ts +25 -0
- package/src/internal/EarnSharePrices.ts +9 -2
- package/src/internal/EarnVaults.test.ts +67 -0
- package/src/internal/EarnVaults.ts +299 -4
- package/src/internal/EarnWithdrawals.test.ts +315 -0
- package/src/internal/EarnWithdrawals.ts +266 -0
- package/src/internal/ExecutionContext.ts +31 -0
- package/src/internal/Log.test.ts +210 -0
- package/src/internal/Log.ts +180 -142
- package/src/internal/MetricSink.test.ts +190 -15
- package/src/internal/MetricSink.ts +27 -1
- package/src/internal/RateLimit.test.ts +144 -8
- package/src/internal/RateLimit.ts +254 -26
- package/src/internal/Store.ts +4 -5
- package/src/internal/Timing.test.ts +32 -0
- package/src/internal/Timing.ts +20 -1
- package/src/internal/Tron.test-d.ts +22 -0
- package/src/internal/Tron.test.ts +94 -0
- package/src/internal/Tron.ts +289 -0
- package/src/internal/Viem.rpc.test.ts +76 -0
- package/src/internal/Viem.ts +29 -6
- package/src/internal/rewards/Read.test.ts +109 -0
- package/src/internal/rewards/Read.ts +13 -4
- package/src/internal/routes/Action.test.ts +70 -0
- package/src/internal/routes/Action.ts +76 -1
- package/src/internal/routes/Chain.test.ts +18 -0
- package/src/internal/routes/Chain.ts +5 -0
- package/src/internal/routes/DepositAddress.ts +5 -0
- package/src/internal/routes/Evidence.test.ts +64 -0
- package/src/internal/routes/Evidence.ts +11 -3
- package/src/internal/routes/EvmTransferSettlement.ts +213 -0
- package/src/internal/routes/Policy.test.ts +316 -0
- package/src/internal/routes/Policy.ts +399 -0
- package/src/internal/routes/Provider.test.ts +103 -2
- package/src/internal/routes/Provider.ts +149 -27
- package/src/internal/routes/Quota.test.ts +149 -0
- package/src/internal/routes/Quota.ts +226 -0
- package/src/internal/routes/Reconciliation.local.test.ts +285 -0
- package/src/internal/routes/Reconciliation.test.ts +371 -13
- package/src/internal/routes/Reconciliation.ts +193 -42
- package/src/internal/routes/SolanaTransferSettlement.ts +232 -0
- package/src/internal/routes/SolanaTransferSubsidy.test.ts +471 -0
- package/src/internal/routes/SolanaTransferSubsidy.ts +760 -0
- package/src/internal/routes/SourceObservation.test.ts +221 -0
- package/src/internal/routes/Subsidy.local.test.ts +46 -0
- package/src/internal/routes/Subsidy.ts +4 -2
- package/src/internal/routes/Transfer.solana.test.ts +389 -0
- package/src/internal/routes/Transfer.test.ts +130 -1
- package/src/internal/routes/Transfer.tron.test.ts +172 -0
- package/src/internal/routes/Transfer.ts +866 -8
- package/src/internal/routes/TransferReconciliation.test.ts +26 -4
- package/src/internal/routes/TransferReconciliation.ts +91 -166
- package/src/internal/routes/TransferSettlement.ts +48 -0
- package/src/internal/routes/TransferSubsidy.local.test.ts +143 -0
- package/src/internal/routes/TransferSubsidy.test.ts +34 -4
- package/src/internal/routes/TransferSubsidy.ts +87 -12
- package/src/internal/routes/TronTransferSettlement.ts +212 -0
- package/src/internal/routes/TronTransferSubsidy.test.ts +109 -0
- package/src/internal/routes/TronTransferSubsidy.ts +619 -0
- package/src/internal/routes/index.test.ts +3 -0
- package/src/internal/routes/index.ts +3 -0
- package/src/internal/routes/providers/across.ts +13 -0
- package/src/internal/routes/providers/index.test.ts +141 -0
- package/src/internal/routes/providers/legacyMesh.test.ts +484 -0
- package/src/internal/routes/providers/legacyMesh.ts +633 -0
- package/src/internal/routes/providers/legacyMeshDelivery.test.ts +306 -0
- package/src/internal/routes/providers/legacyMeshDelivery.ts +320 -0
- package/src/internal/routes/providers/legacyMeshOutbound.test.ts +401 -0
- package/src/internal/routes/providers/legacyMeshOutbound.ts +566 -0
- package/src/internal/routes/providers/legacyMeshOutboundDelivery.ts +473 -0
- package/src/internal/routes/providers/propAmm.ts +640 -0
- package/src/internal/routes/providers/relay.test.ts +1299 -18
- package/src/internal/routes/providers/relay.ts +424 -39
- package/src/internal/routes/providers/rhino.ts +14 -1
- package/src/internal/routes/providers/squid.ts +21 -0
- package/src/internal/routes/providers/stargate.test.ts +105 -1
- package/src/internal/routes/providers/stargate.ts +22 -9
- package/src/internal/routes/providers/symbiosis.ts +13 -47
- package/src/providers/index.test.ts +2 -0
- package/src/providers/index.ts +18 -0
- package/dist/admin/Access.d.ts +0 -39
- package/dist/admin/Access.d.ts.map +0 -1
- package/dist/admin/Access.js +0 -73
- package/dist/admin/Access.js.map +0 -1
- package/src/admin/Access.test.ts +0 -130
- package/src/admin/Access.ts +0 -85
|
@@ -36,7 +36,9 @@ export async function finalize(db, options) {
|
|
|
36
36
|
// here only the TTL can settle them.
|
|
37
37
|
if (row.transactionHash === null) {
|
|
38
38
|
if (Date.parse(row.createdAt) + pendingTtlMs <= now().getTime()) {
|
|
39
|
-
await SponsoredTransactions.fail(db, row.id, now().toISOString()
|
|
39
|
+
await SponsoredTransactions.fail(db, row.id, now().toISOString(), {
|
|
40
|
+
transactionHash: row.transactionHash,
|
|
41
|
+
});
|
|
40
42
|
result.failed++;
|
|
41
43
|
}
|
|
42
44
|
else
|
|
@@ -56,7 +58,9 @@ export async function finalize(db, options) {
|
|
|
56
58
|
else {
|
|
57
59
|
result.errors++;
|
|
58
60
|
if (Date.parse(row.createdAt) + receiptErrorTtlMs <= now().getTime()) {
|
|
59
|
-
await SponsoredTransactions.fail(db, row.id, now().toISOString()
|
|
61
|
+
await SponsoredTransactions.fail(db, row.id, now().toISOString(), {
|
|
62
|
+
transactionHash: row.transactionHash,
|
|
63
|
+
});
|
|
60
64
|
result.failed++;
|
|
61
65
|
}
|
|
62
66
|
else
|
|
@@ -70,11 +74,14 @@ export async function finalize(db, options) {
|
|
|
70
74
|
await SponsoredTransactions.finalize(db, row.id, {
|
|
71
75
|
feeAmount: feeAmount.toString(),
|
|
72
76
|
finalizedAt: now().toISOString(),
|
|
77
|
+
transactionHash: row.transactionHash,
|
|
73
78
|
});
|
|
74
79
|
result.finalized++;
|
|
75
80
|
}
|
|
76
81
|
else if (Date.parse(row.createdAt) + pendingTtlMs <= now().getTime()) {
|
|
77
|
-
await SponsoredTransactions.fail(db, row.id, now().toISOString()
|
|
82
|
+
await SponsoredTransactions.fail(db, row.id, now().toISOString(), {
|
|
83
|
+
transactionHash: row.transactionHash,
|
|
84
|
+
});
|
|
78
85
|
result.failed++;
|
|
79
86
|
}
|
|
80
87
|
else
|
|
@@ -83,11 +90,9 @@ export async function finalize(db, options) {
|
|
|
83
90
|
return result;
|
|
84
91
|
}
|
|
85
92
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* matching intents' hashes so the receipt pass can finalize them. Query or
|
|
90
|
-
* candidate errors leave intents for the next pass.
|
|
93
|
+
* Reconciles pending fill intents and recently failed sponsorships against
|
|
94
|
+
* on-chain fee-payer sign payloads. Matches update their transaction hashes;
|
|
95
|
+
* errors leave sponsorships for the next pass.
|
|
91
96
|
*
|
|
92
97
|
* @param db - The database holding `sponsored_transactions`.
|
|
93
98
|
* @param options - Reconciliation options.
|
|
@@ -98,69 +103,75 @@ export async function reconcile(db, options) {
|
|
|
98
103
|
const failedSince = new Date(Date.now() - failedIntentTtlMs).toISOString();
|
|
99
104
|
// Old failed intents must not move the active scan behind its candidate cap.
|
|
100
105
|
const [intents, recoveryWindows] = await Promise.all([
|
|
101
|
-
SponsoredTransactions.
|
|
106
|
+
SponsoredTransactions.listReconciliationCandidates(db, { limit: batchSize }),
|
|
102
107
|
SponsoredTransactions.listRecoveryWindows(db, { failedSince }),
|
|
103
108
|
]);
|
|
104
109
|
const result = { errors: 0, matched: 0, scanned: 0 };
|
|
105
110
|
if (intents.length === 0 && recoveryWindows.length === 0)
|
|
106
111
|
return result;
|
|
107
|
-
const groups =
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const fetched = await getTidx(chainId).fetch({
|
|
119
|
-
chainId,
|
|
120
|
-
query: `SELECT hash, "from" FROM txs WHERE fee_payer = '${feePayer.toLowerCase()}' AND block_timestamp >= '${since}' ORDER BY block_timestamp ASC LIMIT ${candidateCap}`,
|
|
121
|
-
});
|
|
122
|
-
candidates = fetched.rows;
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
// Indexer outage must not fail intents; retry on the next pass.
|
|
126
|
-
result.errors++;
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
for (const candidate of candidates) {
|
|
130
|
-
if (bySignPayload.size === 0)
|
|
131
|
-
break;
|
|
132
|
-
const hash = candidate['hash'];
|
|
133
|
-
const sender = candidate['from'];
|
|
134
|
-
if (!hash || !sender)
|
|
112
|
+
const groups = [
|
|
113
|
+
new Map(),
|
|
114
|
+
new Map(),
|
|
115
|
+
];
|
|
116
|
+
for (const intent of intents) {
|
|
117
|
+
const group = groups[intent.transactionHash === null ? 0 : 1];
|
|
118
|
+
group.set(intent.chainId, [...(group.get(intent.chainId) ?? []), intent]);
|
|
119
|
+
}
|
|
120
|
+
for (const group of groups)
|
|
121
|
+
for (const [chainId, rows] of group) {
|
|
122
|
+
if (candidateCap <= 0)
|
|
135
123
|
continue;
|
|
136
|
-
|
|
124
|
+
const bySignPayload = new Map(rows.map((row) => [row.signPayload, row]));
|
|
125
|
+
const since = formatTidxTimestamp(Math.min(...rows.map((row) => Date.parse(row.createdAt))) - skewMs);
|
|
126
|
+
let candidates;
|
|
137
127
|
try {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
128
|
+
// Dynamic filter values; the tidx client's query type wants literals.
|
|
129
|
+
const fetched = await getTidx(chainId).fetch({
|
|
130
|
+
chainId,
|
|
131
|
+
query: `SELECT hash, "from" FROM txs WHERE fee_payer = '${feePayer.toLowerCase()}' AND block_timestamp >= '${since}' ORDER BY block_timestamp ASC LIMIT ${candidateCap}`,
|
|
132
|
+
});
|
|
133
|
+
candidates = fetched.rows;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Indexer outage must not fail sponsorships; retry on the next pass.
|
|
137
|
+
result.errors++;
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
for (const candidate of candidates) {
|
|
141
|
+
if (bySignPayload.size === 0)
|
|
142
|
+
break;
|
|
143
|
+
const hash = candidate['hash'];
|
|
144
|
+
const sender = candidate['from'];
|
|
145
|
+
if (!hash || !sender)
|
|
141
146
|
continue;
|
|
147
|
+
result.scanned++;
|
|
148
|
+
try {
|
|
149
|
+
const serialized = await getRawTransaction(getClient(chainId), hash);
|
|
150
|
+
if (!serialized) {
|
|
151
|
+
result.errors++;
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
if (!serialized.startsWith(TxEnvelopeTempo.serializedType))
|
|
155
|
+
continue;
|
|
156
|
+
const signPayload = TxEnvelopeTempo.getFeePayerSignPayload(TxEnvelopeTempo.deserialize(serialized), { sender });
|
|
157
|
+
const intent = bySignPayload.get(signPayload);
|
|
158
|
+
if (!intent)
|
|
159
|
+
continue;
|
|
160
|
+
await SponsoredTransactions.assignTransactionHash(db, intent.id, hash, await options.limitFor?.(intent));
|
|
161
|
+
bySignPayload.delete(signPayload);
|
|
162
|
+
result.matched++;
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
// Spend-limit enforcement is an expected policy refusal; dependency,
|
|
166
|
+
// lookup, and malformed-envelope failures remain operational errors.
|
|
167
|
+
if (!(error instanceof SponsoredTransactions.PeriodSpendLimitError))
|
|
168
|
+
result.errors++;
|
|
142
169
|
}
|
|
143
|
-
if (!serialized.startsWith(TxEnvelopeTempo.serializedType))
|
|
144
|
-
continue;
|
|
145
|
-
const signPayload = TxEnvelopeTempo.getFeePayerSignPayload(TxEnvelopeTempo.deserialize(serialized), { sender });
|
|
146
|
-
const intent = bySignPayload.get(signPayload);
|
|
147
|
-
if (!intent)
|
|
148
|
-
continue;
|
|
149
|
-
await SponsoredTransactions.assignTransactionHash(db, intent.id, hash, await options.limitFor?.(intent));
|
|
150
|
-
bySignPayload.delete(signPayload);
|
|
151
|
-
result.matched++;
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
// Spend-limit enforcement is an expected policy refusal; dependency,
|
|
155
|
-
// lookup, and malformed-envelope failures remain operational errors.
|
|
156
|
-
if (!(error instanceof SponsoredTransactions.PeriodSpendLimitError))
|
|
157
|
-
result.errors++;
|
|
158
170
|
}
|
|
171
|
+
// A truncated active scan cannot prove that the remaining sponsorships were never mined.
|
|
172
|
+
if (candidates.length === candidateCap && bySignPayload.size > 0)
|
|
173
|
+
result.errors++;
|
|
159
174
|
}
|
|
160
|
-
// A truncated active scan cannot prove that the remaining intents were never mined.
|
|
161
|
-
if (candidates.length === candidateCap && bySignPayload.size > 0)
|
|
162
|
-
result.errors++;
|
|
163
|
-
}
|
|
164
175
|
const feePayer_lower = feePayer.toLowerCase();
|
|
165
176
|
for (const window of recoveryWindows) {
|
|
166
177
|
const chainId = window.chainId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sponsorships.js","sourceRoot":"","sources":["../../../src/apps/relay/Sponsorships.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sponsorships.js","sourceRoot":"","sources":["../../../src/apps/relay/Sponsorships.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { Context } from 'hono';
|
|
2
2
|
import type * as App from '../../App.js';
|
|
3
|
+
import * as Db from '../../db/Db.js';
|
|
3
4
|
import type * as RoutesTransfers from '../../db/tables/routesTransfers.js';
|
|
4
5
|
import * as Response from '../../internal/Response.js';
|
|
6
|
+
import * as Policy from '../../internal/routes/Policy.js';
|
|
7
|
+
import type * as Catalog from '../../internal/routes/Catalog.js';
|
|
5
8
|
/** Returns the routes owner encoded by an API-key principal. */
|
|
6
9
|
export declare function owner(c: Context<App.Environment>): RoutesTransfers.Owner | null;
|
|
7
10
|
/** Returns the error used when a route resource has no API-key owner. */
|
|
@@ -13,4 +16,54 @@ export declare function unauthorized(c: Context<App.Environment>): Response & im
|
|
|
13
16
|
};
|
|
14
17
|
requestId: string;
|
|
15
18
|
}, 401, "json">;
|
|
19
|
+
/** Request-local authoritative policy context. Public quotes have no context. */
|
|
20
|
+
export type PolicyContext = {
|
|
21
|
+
scope: Policy.Scope;
|
|
22
|
+
layers: Policy.Overrides[];
|
|
23
|
+
legacy: Policy.Legacy;
|
|
24
|
+
defaultAccess?: null;
|
|
25
|
+
versions: number[];
|
|
26
|
+
};
|
|
27
|
+
/** Reads grants from the primary database, never the API-key KV/cache. */
|
|
28
|
+
export declare function loadPolicy(c: Context<App.Environment>): Promise<PolicyContext | undefined>;
|
|
29
|
+
/** No saved policy in this scope chain: retain the original subsidy/provisioning contract. */
|
|
30
|
+
export declare function isLegacy(context: PolicyContext): boolean;
|
|
31
|
+
/** Applies independent access and subsidy gates before provider selection. */
|
|
32
|
+
export declare function filterCatalog(catalog: Catalog.Snapshot, context: PolicyContext, subsidize: boolean): Catalog.Snapshot;
|
|
33
|
+
/** Checks financial eligibility and pins a platform-bounded expense ceiling. */
|
|
34
|
+
export declare function commitment(db: Db.Db, context: PolicyContext, route: Policy.Rule, platformMaxAmount: string): Promise<Policy.Commitment>;
|
|
35
|
+
/** Serializes acceptance against admin changes; call inside the resource transaction. */
|
|
36
|
+
export declare function assertPolicy(db: Db.Db, context: PolicyContext): Promise<void>;
|
|
37
|
+
/** Emits a bounded denial metric and a customer-safe response. */
|
|
38
|
+
export declare function policyError(c: Context<App.Environment>, cause: PolicyError): (Response & import("hono").TypedResponse<{
|
|
39
|
+
error: {
|
|
40
|
+
code: "route_policy_changed";
|
|
41
|
+
details?: readonly Response.error.Detail[] | undefined;
|
|
42
|
+
message: string;
|
|
43
|
+
};
|
|
44
|
+
requestId: string;
|
|
45
|
+
}, 409, "json">) | (Response & import("hono").TypedResponse<{
|
|
46
|
+
error: {
|
|
47
|
+
code: "billing_past_due" | "billing_required" | "routes_not_allowed" | "routes_subsidy_not_allowed" | "routes_subsidy_not_enabled" | "routes_suspended";
|
|
48
|
+
details?: readonly Response.error.Detail[] | undefined;
|
|
49
|
+
message: string;
|
|
50
|
+
};
|
|
51
|
+
requestId: string;
|
|
52
|
+
}, 403, "json">);
|
|
53
|
+
declare const messages: {
|
|
54
|
+
readonly billing_past_due: 'Billing past due.';
|
|
55
|
+
readonly billing_required: 'Active billing is required for enterprise-paid route subsidies. Set up billing for this organization, then retry.';
|
|
56
|
+
readonly route_policy_changed: 'Route policy changed during creation. Retry the request.';
|
|
57
|
+
readonly routes_not_allowed: 'This route is not permitted by your access policy.';
|
|
58
|
+
readonly routes_subsidy_not_allowed: 'This route is not eligible for the requested subsidy.';
|
|
59
|
+
readonly routes_subsidy_not_enabled: 'Route subsidies are not enabled for this request. Contact Tempo to enable them, or use an API key from an organization with subsidies enabled.';
|
|
60
|
+
readonly routes_suspended: 'New route instructions are suspended for this organization and environment.';
|
|
61
|
+
};
|
|
62
|
+
/** A policy denial, distinct from provider unavailability. */
|
|
63
|
+
export declare class PolicyError extends Error {
|
|
64
|
+
code: keyof typeof messages;
|
|
65
|
+
name: string;
|
|
66
|
+
constructor(code: keyof typeof messages);
|
|
67
|
+
}
|
|
68
|
+
export {};
|
|
16
69
|
//# sourceMappingURL=Access.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../../src/apps/routes/Access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Access.d.ts","sourceRoot":"","sources":["../../../src/apps/routes/Access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAKpC,OAAO,KAAK,KAAK,eAAe,MAAM,oCAAoC,CAAA;AAE1E,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,iCAAiC,CAAA;AACzD,OAAO,KAAK,KAAK,OAAO,MAAM,kCAAkC,CAAA;AAEhE,gEAAgE;AAChE,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,KAAK,GAAG,IAAI,CAQ/E;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;;;;;;;gBAMvD;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,0EAA0E;AAC1E,wBAAsB,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAiBhG;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAExD;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,QAAQ,CAYlB;AAED,gFAAgF;AAChF,wBAAsB,UAAU,CAC9B,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAmB5B;AAED,yFAAyF;AACzF,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBnF;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW;;;;;;;;;;;;;;iBAa1E;AAED,QAAA,MAAM,QAAQ;aACZ,gBAAgB,EAAE,mBAAmB;aACrC,gBAAgB,EACd,mHAAmH;aACrH,oBAAoB,EAAE,0DAA0D;aAChF,kBAAkB,EAAE,oDAAoD;aACxE,0BAA0B,EAAE,uDAAuD;aACnF,0BAA0B,EACxB,gJAAgJ;aAClJ,gBAAgB,EAAE,6EAA6E;CACvF,CAAA;AAEV,8DAA8D;AAC9D,qBAAa,WAAY,SAAQ,KAAK;IAEjB,IAAI,EAAE,MAAM,OAAO,QAAQ;IADrC,IAAI,SAA8B;IAC3C,YAAmB,IAAI,EAAE,MAAM,OAAO,QAAQ,EAE7C;CACF"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { Value } from 'ox';
|
|
2
|
+
import * as Db from '../../db/Db.js';
|
|
3
|
+
import * as ApiKeyAdmissions from '../../db/tables/apiKeyAdmissions.js';
|
|
4
|
+
import * as RoutesPolicies from '../../db/tables/routesPolicies.js';
|
|
5
|
+
import * as RoutesSubsidies from '../../db/tables/routesSubsidies.js';
|
|
6
|
+
import * as StripeCustomers from '../../db/tables/stripeCustomers.js';
|
|
1
7
|
import * as Auth from '../../internal/Auth.js';
|
|
2
8
|
import * as Response from '../../internal/Response.js';
|
|
9
|
+
import * as Policy from '../../internal/routes/Policy.js';
|
|
3
10
|
/** Returns the routes owner encoded by an API-key principal. */
|
|
4
11
|
export function owner(c) {
|
|
5
12
|
const principal = Auth.getPrincipal(c);
|
|
@@ -19,4 +26,118 @@ export function unauthorized(c) {
|
|
|
19
26
|
status: 401,
|
|
20
27
|
});
|
|
21
28
|
}
|
|
29
|
+
/** Reads grants from the primary database, never the API-key KV/cache. */
|
|
30
|
+
export async function loadPolicy(c) {
|
|
31
|
+
const principal = Auth.getPrincipal(c);
|
|
32
|
+
if (principal?.type !== 'api_key')
|
|
33
|
+
return undefined;
|
|
34
|
+
const scope = {
|
|
35
|
+
apiKeyId: principal.id,
|
|
36
|
+
environment: principal.environment,
|
|
37
|
+
orgId: principal.orgId,
|
|
38
|
+
...(principal.projectId === undefined ? {} : { projectId: principal.projectId }),
|
|
39
|
+
};
|
|
40
|
+
const loaded = await RoutesPolicies.load(Db.get(c.get('db')), scope);
|
|
41
|
+
return {
|
|
42
|
+
scope,
|
|
43
|
+
...(loaded.layers[0]?.version === 0 ? { defaultAccess: null } : {}),
|
|
44
|
+
layers: loaded.layers.map((layer) => layer.policy),
|
|
45
|
+
legacy: loaded.legacy,
|
|
46
|
+
versions: loaded.layers.map((layer) => layer.version),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** No saved policy in this scope chain: retain the original subsidy/provisioning contract. */
|
|
50
|
+
export function isLegacy(context) {
|
|
51
|
+
return context.versions.every((version) => version === 0);
|
|
52
|
+
}
|
|
53
|
+
/** Applies independent access and subsidy gates before provider selection. */
|
|
54
|
+
export function filterCatalog(catalog, context, subsidize) {
|
|
55
|
+
if (isLegacy(context))
|
|
56
|
+
return catalog;
|
|
57
|
+
const effective = Policy.resolve(context);
|
|
58
|
+
if (effective.suspended)
|
|
59
|
+
throw new PolicyError('routes_suspended');
|
|
60
|
+
if (subsidize &&
|
|
61
|
+
!catalog.routes.some((route) => Policy.resolve({ ...context, route: Policy.fromRoute(route) }).subsidyEnabled))
|
|
62
|
+
throw new PolicyError('routes_subsidy_not_enabled');
|
|
63
|
+
return Policy.filter(catalog, { ...context, subsidize });
|
|
64
|
+
}
|
|
65
|
+
/** Checks financial eligibility and pins a platform-bounded expense ceiling. */
|
|
66
|
+
export async function commitment(db, context, route, platformMaxAmount) {
|
|
67
|
+
const effective = Policy.resolve({ ...context, route });
|
|
68
|
+
if (effective.suspended)
|
|
69
|
+
throw new PolicyError('routes_suspended');
|
|
70
|
+
if (!Policy.allows(effective.access, route))
|
|
71
|
+
throw new PolicyError('routes_not_allowed');
|
|
72
|
+
if (!effective.subsidyEnabled)
|
|
73
|
+
throw new PolicyError('routes_subsidy_not_enabled');
|
|
74
|
+
if (!effective.subsidyEligible)
|
|
75
|
+
throw new PolicyError('routes_subsidy_not_allowed');
|
|
76
|
+
if (context.scope.environment === 'production' && effective.subsidyPayer === 'enterprise') {
|
|
77
|
+
const billing = await StripeCustomers.get(db, context.scope.orgId);
|
|
78
|
+
if (billing?.status === 'past_due')
|
|
79
|
+
throw new PolicyError('billing_past_due');
|
|
80
|
+
if (billing?.status !== 'active')
|
|
81
|
+
throw new PolicyError('billing_required');
|
|
82
|
+
}
|
|
83
|
+
const limit = Value.from(effective.maxAmount, 6);
|
|
84
|
+
const platformLimit = Value.from(platformMaxAmount, 6);
|
|
85
|
+
return {
|
|
86
|
+
maxAmount: Value.format(limit < platformLimit ? limit : platformLimit, 6),
|
|
87
|
+
scope: context.scope,
|
|
88
|
+
subsidyPayer: effective.subsidyPayer,
|
|
89
|
+
versions: context.versions,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** Serializes acceptance against admin changes; call inside the resource transaction. */
|
|
93
|
+
export async function assertPolicy(db, context) {
|
|
94
|
+
await RoutesSubsidies.lockOrganization(db, context.scope.orgId);
|
|
95
|
+
// Reassignment takes this organization lock even when no key override exists.
|
|
96
|
+
// Policy versions alone cannot fence requests authenticated under the old owner.
|
|
97
|
+
if (context.scope.apiKeyId !== undefined &&
|
|
98
|
+
!(await ApiKeyAdmissions.matches(db, {
|
|
99
|
+
id: context.scope.apiKeyId,
|
|
100
|
+
orgId: context.scope.orgId,
|
|
101
|
+
projectId: context.scope.projectId,
|
|
102
|
+
})))
|
|
103
|
+
throw new PolicyError('route_policy_changed');
|
|
104
|
+
const current = await RoutesPolicies.load(db, context.scope);
|
|
105
|
+
if (JSON.stringify(current.layers.map((layer) => layer.version)) !==
|
|
106
|
+
JSON.stringify(context.versions) ||
|
|
107
|
+
JSON.stringify(current.legacy) !== JSON.stringify(context.legacy))
|
|
108
|
+
throw new PolicyError('route_policy_changed');
|
|
109
|
+
}
|
|
110
|
+
/** Emits a bounded denial metric and a customer-safe response. */
|
|
111
|
+
export function policyError(c, cause) {
|
|
112
|
+
c.get('metrics')?.count('routes_policy_denial_count', 1, { reason: cause.code });
|
|
113
|
+
if (cause.code === 'route_policy_changed')
|
|
114
|
+
return Response.error(c, {
|
|
115
|
+
code: cause.code,
|
|
116
|
+
message: messages[cause.code],
|
|
117
|
+
status: 409,
|
|
118
|
+
});
|
|
119
|
+
return Response.error(c, {
|
|
120
|
+
code: cause.code,
|
|
121
|
+
message: messages[cause.code],
|
|
122
|
+
status: 403,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const messages = {
|
|
126
|
+
billing_past_due: 'Billing past due.',
|
|
127
|
+
billing_required: 'Active billing is required for enterprise-paid route subsidies. Set up billing for this organization, then retry.',
|
|
128
|
+
route_policy_changed: 'Route policy changed during creation. Retry the request.',
|
|
129
|
+
routes_not_allowed: 'This route is not permitted by your access policy.',
|
|
130
|
+
routes_subsidy_not_allowed: 'This route is not eligible for the requested subsidy.',
|
|
131
|
+
routes_subsidy_not_enabled: 'Route subsidies are not enabled for this request. Contact Tempo to enable them, or use an API key from an organization with subsidies enabled.',
|
|
132
|
+
routes_suspended: 'New route instructions are suspended for this organization and environment.',
|
|
133
|
+
};
|
|
134
|
+
/** A policy denial, distinct from provider unavailability. */
|
|
135
|
+
export class PolicyError extends Error {
|
|
136
|
+
code;
|
|
137
|
+
name = 'Routes.Access.PolicyError';
|
|
138
|
+
constructor(code) {
|
|
139
|
+
super(messages[code]);
|
|
140
|
+
this.code = code;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
22
143
|
//# sourceMappingURL=Access.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Access.js","sourceRoot":"","sources":["../../../src/apps/routes/Access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Access.js","sourceRoot":"","sources":["../../../src/apps/routes/Access.ts"],"names":[],"mappings":"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"}
|