tapimo 0.2.0 → 0.4.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 +36 -8
- package/dist/ApiKey.d.ts +1 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +5 -2
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +28 -1
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +34 -1
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +7532 -4850
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +11 -3
- package/dist/App.js.map +1 -1
- package/dist/Scope.d.ts +11 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +14 -3
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +63 -53
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +7 -0
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/scopes.d.ts +8 -0
- package/dist/admin/apps/scopes.d.ts.map +1 -1
- package/dist/admin/apps/scopes.js +3 -0
- package/dist/admin/apps/scopes.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +57 -57
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.js +13 -13
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +151 -0
- package/dist/analytics/Analytics.d.ts.map +1 -0
- package/dist/analytics/Analytics.js +212 -0
- package/dist/analytics/Analytics.js.map +1 -0
- package/dist/analytics/tables/requestEvents.d.ts +215 -0
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -0
- package/dist/analytics/tables/requestEvents.js +264 -0
- package/dist/analytics/tables/requestEvents.js.map +1 -0
- package/dist/apps/data/App.d.ts +1049 -624
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +36 -0
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FundingRouteProviders.d.ts +54 -0
- package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -0
- package/dist/apps/data/FundingRouteProviders.js +355 -0
- package/dist/apps/data/FundingRouteProviders.js.map +1 -0
- package/dist/apps/data/index.d.ts +1 -0
- package/dist/apps/data/index.d.ts.map +1 -1
- package/dist/apps/data/index.js +1 -0
- package/dist/apps/data/index.js.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +45 -45
- package/dist/apps/data/routes/coingecko.d.ts +176 -176
- package/dist/apps/data/routes/exchanges.d.ts +455 -455
- package/dist/apps/data/routes/fee-amm.d.ts +101 -101
- package/dist/apps/data/routes/funding.d.ts +843 -0
- package/dist/apps/data/routes/funding.d.ts.map +1 -0
- package/dist/apps/data/routes/funding.js +443 -0
- package/dist/apps/data/routes/funding.js.map +1 -0
- package/dist/apps/data/routes/indexer.d.ts +5 -5
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +2 -8
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +29 -36
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +29 -1
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +36 -36
- package/dist/apps/data/routes/transfers.d.ts +56 -56
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +45 -45
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +8 -8
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/docs/App.d.ts +5 -3
- package/dist/apps/docs/App.d.ts.map +1 -1
- package/dist/apps/docs/App.js +28 -96
- package/dist/apps/docs/App.js.map +1 -1
- package/dist/apps/docs/reference.d.ts +21 -0
- package/dist/apps/docs/reference.d.ts.map +1 -0
- package/dist/apps/docs/reference.js +112 -0
- package/dist/apps/docs/reference.js.map +1 -0
- package/dist/apps/index.d.ts +3 -2
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +3 -2
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/{platform → management}/App.d.ts +3015 -738
- package/dist/apps/management/App.d.ts.map +1 -0
- package/dist/apps/{platform → management}/App.js +20 -10
- package/dist/apps/management/App.js.map +1 -0
- package/dist/apps/management/Billing.d.ts +279 -0
- package/dist/apps/management/Billing.d.ts.map +1 -0
- package/dist/apps/management/Billing.js +477 -0
- package/dist/apps/management/Billing.js.map +1 -0
- package/dist/apps/management/index.d.ts +3 -0
- package/dist/apps/management/index.d.ts.map +1 -0
- package/dist/apps/management/index.js +3 -0
- package/dist/apps/management/index.js.map +1 -0
- package/dist/apps/{platform → management}/routes/api-keys.d.ts +341 -49
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -0
- package/dist/apps/{platform → management}/routes/api-keys.js +116 -14
- package/dist/apps/management/routes/api-keys.js.map +1 -0
- package/dist/apps/management/routes/billing.d.ts +1520 -0
- package/dist/apps/management/routes/billing.d.ts.map +1 -0
- package/dist/apps/management/routes/billing.js +795 -0
- package/dist/apps/management/routes/billing.js.map +1 -0
- package/dist/apps/{platform → management}/routes/invitations.d.ts +202 -84
- package/dist/apps/management/routes/invitations.d.ts.map +1 -0
- package/dist/apps/{platform → management}/routes/invitations.js +59 -1
- package/dist/apps/management/routes/invitations.js.map +1 -0
- package/dist/apps/{platform → management}/routes/me.d.ts +17 -17
- package/dist/apps/management/routes/me.d.ts.map +1 -0
- package/dist/apps/management/routes/me.js.map +1 -0
- package/dist/apps/management/routes/members.d.ts.map +1 -0
- package/dist/apps/management/routes/members.js.map +1 -0
- package/dist/apps/{platform → management}/routes/orgs.d.ts +50 -36
- package/dist/apps/management/routes/orgs.d.ts.map +1 -0
- package/dist/apps/{platform → management}/routes/orgs.js +14 -3
- package/dist/apps/management/routes/orgs.js.map +1 -0
- package/dist/apps/{platform → management}/routes/projects.d.ts +97 -97
- package/dist/apps/{platform → management}/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js.map +1 -0
- package/dist/apps/management/routes/scopes.d.ts +107 -0
- package/dist/apps/management/routes/scopes.d.ts.map +1 -0
- package/dist/apps/management/routes/scopes.js +66 -0
- package/dist/apps/management/routes/scopes.js.map +1 -0
- package/dist/apps/management/routes/usage.d.ts +588 -0
- package/dist/apps/management/routes/usage.d.ts.map +1 -0
- package/dist/apps/management/routes/usage.js +391 -0
- package/dist/apps/management/routes/usage.js.map +1 -0
- package/dist/apps/mcp.d.ts +76 -0
- package/dist/apps/mcp.d.ts.map +1 -0
- package/dist/apps/mcp.js +188 -0
- package/dist/apps/mcp.js.map +1 -0
- package/dist/apps/relay/App.d.ts +4 -1
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +118 -10
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +2 -1
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/cli/Cli.d.ts +8 -1
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/Cli.js +11 -3
- package/dist/cli/Cli.js.map +1 -1
- package/dist/cli/commands/admin.d.ts +4 -0
- package/dist/cli/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin.js +80 -1
- package/dist/cli/commands/admin.js.map +1 -1
- package/dist/db/Db.d.ts +7 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +126 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +79 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +88 -2
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/billingSettings.d.ts +55 -0
- package/dist/db/tables/billingSettings.d.ts.map +1 -0
- package/dist/db/tables/billingSettings.js +70 -0
- package/dist/db/tables/billingSettings.js.map +1 -0
- package/dist/db/tables/invitations.js +2 -2
- package/dist/db/tables/invitations.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +6 -2
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +10 -4
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.js +2 -2
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts +121 -0
- package/dist/db/tables/requestUsage.d.ts.map +1 -0
- package/dist/db/tables/requestUsage.js +150 -0
- package/dist/db/tables/requestUsage.js.map +1 -0
- package/dist/db/tables/sponsoredTransactions.d.ts +119 -0
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +155 -2
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/stripeCustomers.d.ts +81 -0
- package/dist/db/tables/stripeCustomers.d.ts.map +1 -0
- package/dist/db/tables/stripeCustomers.js +120 -0
- package/dist/db/tables/stripeCustomers.js.map +1 -0
- package/dist/db/tables/users.js +2 -2
- package/dist/db/tables/users.js.map +1 -1
- package/dist/handlers/internal/sponsorship.d.ts +5 -2
- package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
- package/dist/handlers/internal/sponsorship.js +19 -5
- package/dist/handlers/internal/sponsorship.js.map +1 -1
- package/dist/handlers/internal/utils.d.ts +10 -3
- package/dist/handlers/internal/utils.d.ts.map +1 -1
- package/dist/handlers/internal/utils.js +14 -6
- package/dist/handlers/internal/utils.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/Auth.d.ts +18 -4
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +149 -77
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +4 -1
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts +10 -0
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +39 -8
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/Fees.d.ts +27 -0
- package/dist/internal/Fees.d.ts.map +1 -0
- package/dist/internal/Fees.js +48 -0
- package/dist/internal/Fees.js.map +1 -0
- package/dist/internal/FundingRoutes.d.ts +915 -0
- package/dist/internal/FundingRoutes.d.ts.map +1 -0
- package/dist/internal/FundingRoutes.js +625 -0
- package/dist/internal/FundingRoutes.js.map +1 -0
- package/dist/internal/Id.d.ts +15 -0
- package/dist/internal/Id.d.ts.map +1 -0
- package/dist/internal/Id.js +22 -0
- package/dist/internal/Id.js.map +1 -0
- package/dist/internal/Log.d.ts +2 -0
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +3 -0
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +10 -1
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +8 -1
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/RateLimit.d.ts +25 -0
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +51 -0
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Response.d.ts +1 -1
- package/dist/internal/Response.d.ts.map +1 -1
- package/dist/internal/Schema.d.ts +8 -0
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +7 -0
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +3 -3
- package/dist/internal/Webhooks.js.map +1 -1
- package/package.json +8 -7
- package/src/ApiKey.ts +9 -2
- package/src/ApiKeys.test.ts +51 -0
- package/src/ApiKeys.ts +50 -1
- package/src/App.test.ts +33 -86718
- package/src/App.ts +26 -8
- package/src/Client.test-d.ts +353 -2
- package/src/Scope.ts +16 -3
- package/src/admin/apps/scopes.test.ts +6 -0
- package/src/admin/apps/scopes.ts +3 -0
- package/src/admin/ui/src/components/Page.tsx +2 -3
- package/src/admin/ui/src/routes/__root.tsx +2 -2
- package/src/admin/ui/src/routes/api-keys.tsx +2 -2
- package/src/admin/ui.generated.ts +13 -13
- package/src/analytics/Analytics.test.ts +527 -0
- package/src/analytics/Analytics.ts +318 -0
- package/src/analytics/tables/requestEvents.ts +523 -0
- package/src/apps/composition.test.ts +26 -13
- package/src/apps/data/App.test.ts +72 -0
- package/src/apps/data/App.ts +37 -0
- package/src/apps/data/FundingRouteProviders.test.ts +281 -0
- package/src/apps/data/FundingRouteProviders.ts +459 -0
- package/src/apps/data/index.ts +1 -0
- package/src/apps/data/routes/funding.test.ts +314 -0
- package/src/apps/data/routes/funding.ts +698 -0
- package/src/apps/data/routes/receipts.ts +2 -9
- package/src/apps/data/routes/rpc.test.ts +78 -2
- package/src/apps/data/routes/rpc.ts +31 -1
- package/src/apps/data/routes/webhooks.test.ts +1 -1
- package/src/apps/data/routes/webhooks.ts +11 -8
- package/src/apps/docs/App.ts +30 -101
- package/src/apps/docs/reference.ts +132 -0
- package/src/apps/index.ts +3 -2
- package/src/apps/{platform → management}/App.ts +56 -17
- package/src/apps/management/Billing.test.ts +530 -0
- package/src/apps/management/Billing.ts +682 -0
- package/src/apps/management/index.ts +2 -0
- package/src/apps/{platform → management}/routes/api-keys.test.ts +172 -9
- package/src/apps/{platform → management}/routes/api-keys.ts +137 -21
- package/src/apps/management/routes/billing.test.ts +1100 -0
- package/src/apps/management/routes/billing.ts +966 -0
- package/src/apps/{platform → management}/routes/invitations.test.ts +55 -7
- package/src/apps/{platform → management}/routes/invitations.ts +69 -1
- package/src/apps/management/routes/me.test.ts +351 -0
- package/src/apps/{platform → management}/routes/orgs.ts +26 -4
- package/src/apps/management/routes/scopes.test.ts +29 -0
- package/src/apps/management/routes/scopes.ts +85 -0
- package/src/apps/management/routes/usage.test.ts +422 -0
- package/src/apps/management/routes/usage.ts +527 -0
- package/src/apps/mcp.test.ts +206 -0
- package/src/apps/mcp.ts +250 -0
- package/src/apps/relay/App.test.ts +457 -8
- package/src/apps/relay/App.ts +120 -12
- package/src/apps/relay/Sponsorships.test.ts +1 -1
- package/src/apps/relay/Sponsorships.ts +2 -1
- package/src/cli/Cli.test.ts +25 -2
- package/src/cli/Cli.ts +17 -2
- package/src/cli/commands/admin.test.ts +83 -0
- package/src/cli/commands/admin.ts +89 -1
- package/src/db/Db.ts +137 -0
- package/src/db/Schema.ts +104 -2
- package/src/db/tables/billingSettings.test.ts +87 -0
- package/src/db/tables/billingSettings.ts +108 -0
- package/src/db/tables/invitations.ts +2 -2
- package/src/db/tables/organizations.test.ts +1 -1
- package/src/db/tables/organizations.ts +15 -5
- package/src/db/tables/projects.ts +2 -2
- package/src/db/tables/requestUsage.ts +231 -0
- package/src/db/tables/sponsoredTransactions.test.ts +108 -1
- package/src/db/tables/sponsoredTransactions.ts +230 -2
- package/src/db/tables/stripeCustomers.test.ts +109 -0
- package/src/db/tables/stripeCustomers.ts +162 -0
- package/src/db/tables/users.ts +2 -2
- package/src/handlers/internal/sponsorship.ts +34 -7
- package/src/handlers/internal/utils.ts +19 -7
- package/src/index.ts +1 -0
- package/src/internal/Auth.test.ts +175 -25
- package/src/internal/Auth.ts +176 -87
- package/src/internal/Cache.ts +5 -1
- package/src/internal/EdgeCache.test.ts +27 -4
- package/src/internal/EdgeCache.ts +47 -9
- package/src/internal/Fees.test.ts +32 -0
- package/src/internal/Fees.ts +51 -0
- package/src/internal/FundingRoutes.test.ts +213 -0
- package/src/internal/FundingRoutes.ts +898 -0
- package/src/internal/Id.test.ts +17 -0
- package/src/internal/Id.ts +24 -0
- package/src/internal/Log.test.ts +1 -0
- package/src/internal/Log.ts +5 -0
- package/src/internal/OpenApi.ts +12 -1
- package/src/internal/RateLimit.test.ts +84 -0
- package/src/internal/RateLimit.ts +70 -0
- package/src/internal/Response.ts +1 -1
- package/src/internal/Schema.ts +8 -0
- package/src/internal/Webhooks.test.ts +3 -3
- package/src/internal/Webhooks.ts +3 -3
- package/dist/apps/platform/App.d.ts.map +0 -1
- package/dist/apps/platform/App.js.map +0 -1
- package/dist/apps/platform/index.d.ts +0 -2
- package/dist/apps/platform/index.d.ts.map +0 -1
- package/dist/apps/platform/index.js +0 -2
- package/dist/apps/platform/index.js.map +0 -1
- package/dist/apps/platform/routes/api-keys.d.ts.map +0 -1
- package/dist/apps/platform/routes/api-keys.js.map +0 -1
- package/dist/apps/platform/routes/invitations.d.ts.map +0 -1
- package/dist/apps/platform/routes/invitations.js.map +0 -1
- package/dist/apps/platform/routes/me.d.ts.map +0 -1
- package/dist/apps/platform/routes/me.js.map +0 -1
- package/dist/apps/platform/routes/members.d.ts.map +0 -1
- package/dist/apps/platform/routes/members.js.map +0 -1
- package/dist/apps/platform/routes/orgs.d.ts.map +0 -1
- package/dist/apps/platform/routes/orgs.js.map +0 -1
- package/dist/apps/platform/routes/projects.js.map +0 -1
- package/src/apps/platform/index.ts +0 -1
- package/src/apps/platform/routes/me.test.ts +0 -121
- /package/dist/apps/{platform → management}/routes/me.js +0 -0
- /package/dist/apps/{platform → management}/routes/members.d.ts +0 -0
- /package/dist/apps/{platform → management}/routes/members.js +0 -0
- /package/dist/apps/{platform → management}/routes/projects.js +0 -0
- /package/src/apps/{platform → management}/routes/me.ts +0 -0
- /package/src/apps/{platform → management}/routes/members.test.ts +0 -0
- /package/src/apps/{platform → management}/routes/members.ts +0 -0
- /package/src/apps/{platform → management}/routes/orgs.test.ts +0 -0
- /package/src/apps/{platform → management}/routes/projects.test.ts +0 -0
- /package/src/apps/{platform → management}/routes/projects.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"funding.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/funding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAG3C,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAA;AAEnE,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAGzD,wDAAwD;AACxD,yBAAiB,MAAM,CAAC;IACtB,6CAA6C;IACtC,MAAM,KAAK;;;;;;;;;;;;;;qBAiCjB,CAAA;IAED,6CAA6C;IACtC,MAAM,KAAK;;;;;;;;;qBA6CjB,CAAA;IAED,wDAAwD;IACjD,MAAM,WAAW;;;;qBAqBvB,CAAA;IAED,sDAAsD;IAC/C,MAAM,WAAW;;;;;qBAoBvB,CAAA;IAED,+EAA+E;IACxE,MAAM,OAAO;;;;;;;;;;;;;;;;qBA0DnB,CAAA;IAED,yDAAyD;IAClD,MAAM,UAAU;;;;;;;;;;;;qBA8DtB,CAAA;IAED,8CAA8C;IACvC,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAgC1B,CAAA;IAED,sCAAsC;IAC/B,MAAM,QAAQ;;;;;;;;;;;;;qBA+BpB,CAAA;IAED,qEAAqE;IAC9D,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;qBAK1B,CAAA;IAED,mDAAmD;IACnD,UAAiB,iBAAiB,CAAC;QACjC,oDAAoD;QAC7C,MAAM,KAAK;;;;;;;;;;;;0BA6DiE,CAAA;QAEnF,sDAAsD;QAC/C,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAOpB,CAAA;KACF;IAED,mDAAmD;IACnD,UAAiB,iBAAiB,CAAC;QACjC,4CAA4C;QACrC,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;yBAOpB,CAAA;KACF;IAED,+CAA+C;IAC/C,UAAiB,aAAa,CAAC;QAC7B,yDAAyD;QAClD,MAAM,KAAK;;;;0BAS6C,CAAA;QAE/D,8CAA8C;QACvC,MAAM,QAAQ;;;;;;;;;;;;;;;yBAKpB,CAAA;KACF;CACF;AA6DD,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,OAAO,GAAE,OAAO,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiJpD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,KAAK,OAAO,GAAG;QACb,wEAAwE;QACxE,QAAQ,CAAC,EAAE,aAAa,CAAC,gBAAgB,GAAG,SAAS,CAAA;QACrD,kDAAkD;QAClD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACtC,CAAA;CACF"}
|
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import * as z from 'zod/mini';
|
|
3
|
+
import * as Auth from '../../../internal/Auth.js';
|
|
4
|
+
import * as Cache from '../../../internal/Cache.js';
|
|
5
|
+
import * as FundingRoutes from '../../../internal/FundingRoutes.js';
|
|
6
|
+
import * as OpenApi from '../../../internal/OpenApi.js';
|
|
7
|
+
import * as Response from '../../../internal/Response.js';
|
|
8
|
+
import * as Schema from '../../../internal/Schema.js';
|
|
9
|
+
/** Zod schemas owned by the funding routes resource. */
|
|
10
|
+
export var schema;
|
|
11
|
+
(function (schema) {
|
|
12
|
+
/** Source or destination chain reference. */
|
|
13
|
+
schema.Chain = Schema.describe(z.object({
|
|
14
|
+
addressFormat: z
|
|
15
|
+
.enum(['evm', 'solana', 'tron'])
|
|
16
|
+
.check(z.describe('Address family used by accounts and token identifiers on this chain.'), z.meta({ examples: ['evm'] })),
|
|
17
|
+
id: z
|
|
18
|
+
.string()
|
|
19
|
+
.check(z.describe('Stable chain id, preferably CAIP-2 when one exists. Funding spans non-EVM chains, so ids are strings, unlike numeric `chainId` params elsewhere.'), z.meta({ examples: ['eip155:8453'] })),
|
|
20
|
+
kind: z
|
|
21
|
+
.enum(['evm', 'solana', 'tron'])
|
|
22
|
+
.check(z.describe('Chain execution family used for provider routing.'), z.meta({ examples: ['evm'] })),
|
|
23
|
+
name: z
|
|
24
|
+
.string()
|
|
25
|
+
.check(z.describe('Human-readable chain name.'), z.meta({ examples: ['Base'] })),
|
|
26
|
+
providerIds: z
|
|
27
|
+
.optional(z.record(z.string(), z.string()))
|
|
28
|
+
.check(z.describe('Provider-specific chain ids Tempo uses when querying route providers.'), z.meta({ examples: [{ across: '8453', relay: '8453' }] })),
|
|
29
|
+
}), 'A normalized chain reference for funding routes.');
|
|
30
|
+
/** Source or destination token reference. */
|
|
31
|
+
schema.Token = Schema.describe(z.object({
|
|
32
|
+
address: z
|
|
33
|
+
.string()
|
|
34
|
+
.check(z.describe('Contract address, mint, or issuer address on the token chain.'), z.meta({ examples: ['0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'] })),
|
|
35
|
+
decimals: z
|
|
36
|
+
.number()
|
|
37
|
+
.check(z.int(), z.gte(0), z.describe('Number of decimal places this token uses.'), z.meta({ examples: [6] })),
|
|
38
|
+
metadata: z
|
|
39
|
+
.record(z.string(), z.string())
|
|
40
|
+
.check(z.describe('Curated display or lookup metadata for this token.'), z.meta({ examples: [{ coingeckoId: 'usd-coin' }] })),
|
|
41
|
+
name: z
|
|
42
|
+
.string()
|
|
43
|
+
.check(z.describe('Human-readable token name.'), z.meta({ examples: ['USD Coin'] })),
|
|
44
|
+
standard: z
|
|
45
|
+
.string()
|
|
46
|
+
.check(z.describe('Token standard on the token chain.'), z.meta({ examples: ['ERC-20'] })),
|
|
47
|
+
symbol: z
|
|
48
|
+
.string()
|
|
49
|
+
.check(z.describe('Short token ticker symbol.'), z.meta({ examples: ['USDC'] })),
|
|
50
|
+
tokenKey: z.string().check(z.describe('Stable Tempo token key scoped to the token chain.'), z.meta({
|
|
51
|
+
examples: ['eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'],
|
|
52
|
+
})),
|
|
53
|
+
verified: z
|
|
54
|
+
.boolean()
|
|
55
|
+
.check(z.describe('Whether Tempo recognizes this token in its funding route inventory.'), z.meta({ examples: [true] })),
|
|
56
|
+
}), 'A normalized token reference for funding routes.');
|
|
57
|
+
/** Source amount echoed by a funding route response. */
|
|
58
|
+
schema.TokenAmount = Schema.describe(z.object({
|
|
59
|
+
amount: Schema.DecimalString.check(z.describe("The requested source amount in the token's smallest unit.")),
|
|
60
|
+
formatted: z
|
|
61
|
+
.string()
|
|
62
|
+
.check(z.describe('The same amount in human-readable decimal form, using the source token’s `decimals`.'), z.meta({ examples: ['1'] })),
|
|
63
|
+
usd: z
|
|
64
|
+
.nullable(z.string())
|
|
65
|
+
.check(z.describe('USD estimate for the requested source amount, when available.'), z.meta({ examples: ['1.00'] })),
|
|
66
|
+
}), 'The requested source amount in provider-safe base units and display form.');
|
|
67
|
+
/** Provider summary embedded in a route candidate. */
|
|
68
|
+
schema.ProviderRef = Schema.describe(z.object({
|
|
69
|
+
id: z.string().check(z.describe('Stable provider id.'), z.meta({ examples: ['across'] })),
|
|
70
|
+
kind: z
|
|
71
|
+
.string()
|
|
72
|
+
.check(z.describe('Provider category, such as an intent bridge, solver network, or aggregator.'), z.meta({ examples: ['intentBridge'] })),
|
|
73
|
+
name: z
|
|
74
|
+
.string()
|
|
75
|
+
.check(z.describe('Human-readable provider name.'), z.meta({ examples: ['Across'] })),
|
|
76
|
+
requiresApiKey: z
|
|
77
|
+
.boolean()
|
|
78
|
+
.check(z.describe('Whether Tempo needs provider credentials to query or use this provider.'), z.meta({ examples: [true] })),
|
|
79
|
+
}), 'Provider metadata embedded in a route candidate.');
|
|
80
|
+
/** Route quality signals exposed directly instead of implied by list order. */
|
|
81
|
+
schema.Quality = Schema.describe(z.object({
|
|
82
|
+
availableVolumeUsd: z
|
|
83
|
+
.nullable(z.string())
|
|
84
|
+
.check(z.describe('Available USD capacity, when available.'), z.meta({ examples: ['1114274.43'] })),
|
|
85
|
+
estimatedSeconds: z
|
|
86
|
+
.nullable(z.number().check(z.int(), z.nonnegative()))
|
|
87
|
+
.check(z.describe('Estimated settlement time in seconds, when known.'), z.meta({ examples: [2] })),
|
|
88
|
+
feeBps: z
|
|
89
|
+
.nullable(z.number().check(z.int(), z.nonnegative()))
|
|
90
|
+
.check(z.describe('Estimated fee in basis points, when known.'), z.meta({ examples: [109] })),
|
|
91
|
+
historicalVolumeUsd24h: z
|
|
92
|
+
.nullable(z.string())
|
|
93
|
+
.check(z.describe('24h routed volume in USD, when available.'), z.meta({ examples: ['250000.00'] })),
|
|
94
|
+
instantVolumeUsd: z
|
|
95
|
+
.nullable(z.string())
|
|
96
|
+
.check(z.describe('Instant USD capacity, when available.'), z.meta({ examples: ['12453.94'] })),
|
|
97
|
+
liquiditySource: z
|
|
98
|
+
.string()
|
|
99
|
+
.check(z.describe('Where the liquidity or support signal came from.'), z.meta({ examples: ['staticInventory'] })),
|
|
100
|
+
score: z
|
|
101
|
+
.nullable(z.number().check(z.int(), z.gte(0), z.lte(100)))
|
|
102
|
+
.check(z.describe('Explainable route score from 0 to 100, when enough signals are available.'), z.meta({ examples: [91] })),
|
|
103
|
+
sourceDetail: z
|
|
104
|
+
.nullable(z.string())
|
|
105
|
+
.check(z.describe('Provider-specific source or endpoint detail for the quality signal.'), z.meta({ examples: ['providerEndpoint'] })),
|
|
106
|
+
tier: z
|
|
107
|
+
.enum(['liquid', 'thin', 'unknown', 'unavailable', 'error'])
|
|
108
|
+
.check(z.describe('Machine-readable route quality tier.'), z.meta({ examples: ['unknown'] })),
|
|
109
|
+
}), 'Machine-readable liquidity, fee, and source signals for a route candidate.');
|
|
110
|
+
/** Provider-derived quote data for a route candidate. */
|
|
111
|
+
schema.RouteQuote = Schema.describe(z.object({
|
|
112
|
+
expiresAt: z
|
|
113
|
+
.nullable(z.iso.datetime())
|
|
114
|
+
.check(z.describe('Provider quote expiry timestamp.'), z.meta({ examples: ['2026-01-01T00:00:30Z'] })),
|
|
115
|
+
inputAmount: Schema.DecimalString.check(z.describe('Source amount sent to the provider in base units.'), z.meta({ examples: ['1000000'] })),
|
|
116
|
+
limits: z
|
|
117
|
+
.nullable(z.object({
|
|
118
|
+
instantSourceAmount: z
|
|
119
|
+
.nullable(Schema.DecimalString)
|
|
120
|
+
.check(z.describe('Provider-reported instant source amount capacity.'), z.meta({ examples: ['12453940000'] })),
|
|
121
|
+
maxSourceAmount: z
|
|
122
|
+
.nullable(Schema.DecimalString)
|
|
123
|
+
.check(z.describe('Provider-reported maximum source amount.'), z.meta({ examples: ['1114274433200'] })),
|
|
124
|
+
minSourceAmount: z
|
|
125
|
+
.nullable(Schema.DecimalString)
|
|
126
|
+
.check(z.describe('Provider-reported minimum source amount.'), z.meta({ examples: ['500063'] })),
|
|
127
|
+
}))
|
|
128
|
+
.check(z.describe('Provider limits expressed in source base units.')),
|
|
129
|
+
minimumOutputAmount: z
|
|
130
|
+
.nullable(Schema.DecimalString)
|
|
131
|
+
.check(z.describe('Slippage-adjusted minimum destination amount in base units.'), z.meta({ examples: ['988000'] })),
|
|
132
|
+
outputAmount: z
|
|
133
|
+
.nullable(Schema.DecimalString)
|
|
134
|
+
.check(z.describe('Expected destination amount in base units.'), z.meta({ examples: ['989102'] })),
|
|
135
|
+
outputAmountFormatted: z
|
|
136
|
+
.nullable(z.string())
|
|
137
|
+
.check(z.describe('Expected destination amount rendered with destination token decimals.'), z.meta({ examples: ['0.989102'] })),
|
|
138
|
+
sampledAt: z.iso
|
|
139
|
+
.datetime()
|
|
140
|
+
.check(z.describe('Timestamp for the live quote or route probe.'), z.meta({ examples: ['2026-01-01T00:00:00Z'] })),
|
|
141
|
+
}), 'Provider-derived quote, limit, and freshness data for a route candidate.');
|
|
142
|
+
/** Static or live funding route candidate. */
|
|
143
|
+
schema.RouteCandidate = Schema.describe(z.object({
|
|
144
|
+
destinationChain: schema.Chain.check(z.describe('Destination chain, always Tempo mainnet in V1.')),
|
|
145
|
+
destinationToken: schema.Token.check(z.describe('Tempo token expected from this route.')),
|
|
146
|
+
errorCode: z
|
|
147
|
+
.nullable(z.string())
|
|
148
|
+
.check(z.describe('Stable route error code, when status is `error`.'), z.meta({ examples: ['provider_timeout'] })),
|
|
149
|
+
id: z
|
|
150
|
+
.string()
|
|
151
|
+
.check(z.describe('Stable deterministic route candidate id.'), z.meta({ examples: ['base-usdc-tempo-usdce-across'] })),
|
|
152
|
+
provider: schema.ProviderRef,
|
|
153
|
+
quality: schema.Quality,
|
|
154
|
+
quote: z
|
|
155
|
+
.nullable(schema.RouteQuote)
|
|
156
|
+
.check(z.describe('Provider-derived quote data, when a live route probe succeeds.')),
|
|
157
|
+
sourceAmount: schema.TokenAmount,
|
|
158
|
+
sourceChain: schema.Chain.check(z.describe('Chain where the caller currently holds funds.')),
|
|
159
|
+
sourceToken: schema.Token.check(z.describe('Token the caller currently holds.')),
|
|
160
|
+
status: z
|
|
161
|
+
.enum(['available', 'thin', 'unknown', 'unavailable', 'error'])
|
|
162
|
+
.check(z.describe('Provider-specific route status for the requested amount.'), z.meta({ examples: ['unknown'] })),
|
|
163
|
+
}), 'One provider-specific funding route candidate.');
|
|
164
|
+
/** Generic provider catalog entry. */
|
|
165
|
+
schema.Provider = Schema.describe(z.object({
|
|
166
|
+
capabilities: z
|
|
167
|
+
.array(z.enum(['fundingRoutes']))
|
|
168
|
+
.check(z.describe('Provider capabilities Tempo exposes through public APIs.'), z.meta({ examples: [['fundingRoutes']] })),
|
|
169
|
+
id: z.string().check(z.describe('Stable provider id.'), z.meta({ examples: ['relay'] })),
|
|
170
|
+
kind: z
|
|
171
|
+
.string()
|
|
172
|
+
.check(z.describe('Provider category.'), z.meta({ examples: ['solverNetwork'] })),
|
|
173
|
+
name: z
|
|
174
|
+
.string()
|
|
175
|
+
.check(z.describe('Human-readable provider name.'), z.meta({ examples: ['Relay'] })),
|
|
176
|
+
requiresApiKey: z
|
|
177
|
+
.boolean()
|
|
178
|
+
.check(z.describe('Whether Tempo needs provider credentials to query or use this provider.'), z.meta({ examples: [false] })),
|
|
179
|
+
status: z
|
|
180
|
+
.enum(['configured', 'inventoryOnly', 'planned'])
|
|
181
|
+
.check(z.describe('`inventoryOnly` means Tempo exposes static route support but does not query live quotes yet. `planned` means the provider is listed for future support and may not return route candidates.'), z.meta({ examples: ['inventoryOnly'] })),
|
|
182
|
+
}), 'One provider in the generic provider catalog.');
|
|
183
|
+
/** Chain inventory entry returned by the funding chains endpoint. */
|
|
184
|
+
schema.ChainInventory = Schema.describe(z.extend(schema.Chain, {
|
|
185
|
+
tokens: z.array(schema.Token).check(z.describe('Stablecoins known on this source chain.')),
|
|
186
|
+
}), 'One source chain and its known stablecoin inventory.');
|
|
187
|
+
/** Schemas for the listFundingRoutes operation. */
|
|
188
|
+
let listFundingRoutes;
|
|
189
|
+
(function (listFundingRoutes) {
|
|
190
|
+
/** Query parameters for funding route discovery. */
|
|
191
|
+
listFundingRoutes.Query = z
|
|
192
|
+
.strictObject({
|
|
193
|
+
destinationToken: z
|
|
194
|
+
.optional(z.string())
|
|
195
|
+
.check(z.describe('Tempo destination token symbol, address, or token key. Defaults to USDC.e.'), z.meta({ examples: ['USDC.e'] })),
|
|
196
|
+
include: z
|
|
197
|
+
.optional(z.string())
|
|
198
|
+
.check(z.describe('Comma-separated response expansions. V1 accepts `quotes`.'), z.meta({ examples: ['quotes'] })),
|
|
199
|
+
limit: Schema.Limit,
|
|
200
|
+
provider: z
|
|
201
|
+
.optional(z.string())
|
|
202
|
+
.check(z.describe('Only return candidates from this provider id, such as `across`, `relay`, or `bridge`. Planned providers can return an empty list.'), z.meta({ examples: ['across', 'bridge'] })),
|
|
203
|
+
sourceAmount: z
|
|
204
|
+
.string()
|
|
205
|
+
.check(z.minLength(1), z.describe('Source token amount. Base units by default, so 1 USDC is `1000000`.'), z.meta({ examples: ['1000000'] })),
|
|
206
|
+
sourceAmountUnits: z
|
|
207
|
+
._default(z.enum(['baseUnits', 'decimal']), 'baseUnits')
|
|
208
|
+
.check(z.describe('Whether `sourceAmount` is base units or a human-readable decimal.'), z.meta({ examples: ['baseUnits', 'decimal'] })),
|
|
209
|
+
sourceChain: z
|
|
210
|
+
.string()
|
|
211
|
+
.check(z.minLength(1), z.describe('Source chain alias or CAIP-2 id, such as `base`, `solana`, `tron`, or `eip155:8453`.'), z.meta({ examples: ['base', 'solana', 'tron'] })),
|
|
212
|
+
sourceToken: z.string().check(z.minLength(1), z.describe('Source token symbol, contract address, mint, or Tempo token key. Symbol lookup is scoped to `sourceChain`; EVM identifiers are case-insensitive, while Solana and Tron identifiers must match exactly. An unknown token returns an empty list, not an error.'), z.meta({
|
|
213
|
+
examples: [
|
|
214
|
+
'USDC',
|
|
215
|
+
'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
216
|
+
'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
|
|
217
|
+
],
|
|
218
|
+
})),
|
|
219
|
+
})
|
|
220
|
+
.check(z.describe('Query parameters for discovering funding routes into Tempo.'));
|
|
221
|
+
/** Non-paginated list of funding route candidates. */
|
|
222
|
+
listFundingRoutes.Response = Schema.describe(z.object({
|
|
223
|
+
data: z
|
|
224
|
+
.array(schema.RouteCandidate)
|
|
225
|
+
.check(z.describe('Funding route candidates matching the request.')),
|
|
226
|
+
}), 'A non-paginated list of funding route candidates.');
|
|
227
|
+
})(listFundingRoutes = schema.listFundingRoutes || (schema.listFundingRoutes = {}));
|
|
228
|
+
/** Schemas for the listFundingChains operation. */
|
|
229
|
+
let listFundingChains;
|
|
230
|
+
(function (listFundingChains) {
|
|
231
|
+
/** Non-paginated source-chain inventory. */
|
|
232
|
+
listFundingChains.Response = Schema.describe(z.object({
|
|
233
|
+
data: z
|
|
234
|
+
.array(schema.ChainInventory)
|
|
235
|
+
.check(z.describe('Source chains and stablecoins known to the funding route API.')),
|
|
236
|
+
}), 'A non-paginated list of source chains and stablecoin inventory.');
|
|
237
|
+
})(listFundingChains = schema.listFundingChains || (schema.listFundingChains = {}));
|
|
238
|
+
/** Schemas for the listProviders operation. */
|
|
239
|
+
let listProviders;
|
|
240
|
+
(function (listProviders) {
|
|
241
|
+
/** Query parameters for the generic provider catalog. */
|
|
242
|
+
listProviders.Query = z
|
|
243
|
+
.strictObject({
|
|
244
|
+
capability: z
|
|
245
|
+
.optional(z.enum(['fundingRoutes']))
|
|
246
|
+
.check(z.describe('Optional provider capability filter.'), z.meta({ examples: ['fundingRoutes'] })),
|
|
247
|
+
})
|
|
248
|
+
.check(z.describe('Query parameters for listing providers.'));
|
|
249
|
+
/** Non-paginated generic provider catalog. */
|
|
250
|
+
listProviders.Response = Schema.describe(z.object({
|
|
251
|
+
data: z.array(schema.Provider).check(z.describe("Providers in Tempo's generic provider catalog.")),
|
|
252
|
+
}), 'A non-paginated list of providers.');
|
|
253
|
+
})(listProviders = schema.listProviders || (schema.listProviders = {}));
|
|
254
|
+
})(schema || (schema = {}));
|
|
255
|
+
// Examples derive from the static inventory so they never drift from real responses.
|
|
256
|
+
const fundingRouteResponseExamples = {
|
|
257
|
+
baseUsdc: {
|
|
258
|
+
description: '`GET /v1/funding/routes?sourceChain=base&sourceToken=USDC&sourceAmount=1000000&provider=across`',
|
|
259
|
+
summary: 'Base USDC',
|
|
260
|
+
value: {
|
|
261
|
+
data: FundingRoutes.listStaticRoutes({
|
|
262
|
+
limit: 10,
|
|
263
|
+
provider: 'across',
|
|
264
|
+
sourceAmount: '1000000',
|
|
265
|
+
sourceAmountUnits: 'baseUnits',
|
|
266
|
+
sourceChain: 'base',
|
|
267
|
+
sourceToken: 'USDC',
|
|
268
|
+
}),
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
solanaUsdc: {
|
|
272
|
+
description: '`GET /v1/funding/routes?sourceChain=solana&sourceToken=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&sourceAmount=1000000&provider=bridge`',
|
|
273
|
+
summary: 'Solana USDC',
|
|
274
|
+
value: {
|
|
275
|
+
data: FundingRoutes.listStaticRoutes({
|
|
276
|
+
limit: 10,
|
|
277
|
+
provider: 'bridge',
|
|
278
|
+
sourceAmount: '1000000',
|
|
279
|
+
sourceAmountUnits: 'baseUnits',
|
|
280
|
+
sourceChain: 'solana',
|
|
281
|
+
sourceToken: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
282
|
+
}),
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
tronUsdt: {
|
|
286
|
+
description: '`GET /v1/funding/routes?sourceChain=tron&sourceToken=TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t&sourceAmount=1000000&provider=bridge`',
|
|
287
|
+
summary: 'Tron USDT',
|
|
288
|
+
value: {
|
|
289
|
+
data: FundingRoutes.listStaticRoutes({
|
|
290
|
+
limit: 10,
|
|
291
|
+
provider: 'bridge',
|
|
292
|
+
sourceAmount: '1000000',
|
|
293
|
+
sourceAmountUnits: 'baseUnits',
|
|
294
|
+
sourceChain: 'tron',
|
|
295
|
+
sourceToken: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
|
|
296
|
+
}),
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
const fundingChainsResponseExample = {
|
|
301
|
+
data: FundingRoutes.listChains(),
|
|
302
|
+
};
|
|
303
|
+
const providersResponseExample = {
|
|
304
|
+
data: FundingRoutes.listProviders(),
|
|
305
|
+
};
|
|
306
|
+
/** Mounts funding route discovery and generic provider inventory endpoints. */
|
|
307
|
+
export function funding(options = {}) {
|
|
308
|
+
return new Hono()
|
|
309
|
+
.get('/v1/funding/routes', Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }), OpenApi.validate('query', schema.listFundingRoutes.Query, {
|
|
310
|
+
code: 'query_invalid',
|
|
311
|
+
message: 'Invalid query parameters',
|
|
312
|
+
}), OpenApi.describeRoute({
|
|
313
|
+
description: 'Lists provider-specific route candidates for moving a source stablecoin amount into Tempo. This endpoint is discovery-only: it does not execute a bridge, reserve liquidity, or guarantee settlement. Static inventory candidates use `status: unknown`; provider adapters may add best-effort live quote fields.',
|
|
314
|
+
operationId: 'listFundingRoutes',
|
|
315
|
+
responses: OpenApi.responses({
|
|
316
|
+
errors: { 400: { codes: ['query_invalid'] } },
|
|
317
|
+
success: {
|
|
318
|
+
description: 'Discovery-only funding route candidates for the requested source chain and token.',
|
|
319
|
+
examples: fundingRouteResponseExamples,
|
|
320
|
+
schema: schema.listFundingRoutes.Response,
|
|
321
|
+
},
|
|
322
|
+
}),
|
|
323
|
+
summary: 'List funding routes',
|
|
324
|
+
tags: ['Funding'],
|
|
325
|
+
}), Cache.response({
|
|
326
|
+
cacheControl: Cache.policies.noStore,
|
|
327
|
+
name: 'tempo-api:funding-routes:v1',
|
|
328
|
+
key: (c) => Cache.urlKey(c, schema.listFundingRoutes.Query),
|
|
329
|
+
}), async (c) => {
|
|
330
|
+
if (Auth.narrowAccess)
|
|
331
|
+
return Auth.paidAccessError(c);
|
|
332
|
+
if (OpenApi.narrowValidation)
|
|
333
|
+
return OpenApi.validationError(c, {
|
|
334
|
+
code: 'query_invalid',
|
|
335
|
+
message: 'Invalid query parameters',
|
|
336
|
+
});
|
|
337
|
+
const query = c.req.valid('query');
|
|
338
|
+
try {
|
|
339
|
+
const include = FundingRoutes.parseInclude(query.include);
|
|
340
|
+
return c.json(Response.validated(schema.listFundingRoutes.Response, {
|
|
341
|
+
data: await FundingRoutes.listRoutes({
|
|
342
|
+
adapters: options.adapters,
|
|
343
|
+
adapterTimeoutMs: options.adapterTimeoutMs,
|
|
344
|
+
cache: { bypass: cacheBypass(c.req.raw) },
|
|
345
|
+
destinationToken: query.destinationToken,
|
|
346
|
+
include,
|
|
347
|
+
limit: query.limit,
|
|
348
|
+
provider: query.provider,
|
|
349
|
+
sourceAmount: query.sourceAmount,
|
|
350
|
+
sourceAmountUnits: query.sourceAmountUnits,
|
|
351
|
+
sourceChain: query.sourceChain,
|
|
352
|
+
sourceToken: query.sourceToken,
|
|
353
|
+
}),
|
|
354
|
+
}), 200);
|
|
355
|
+
}
|
|
356
|
+
catch (cause) {
|
|
357
|
+
const message = requestErrorMessage(cause);
|
|
358
|
+
if (message)
|
|
359
|
+
return Response.error(c, { code: 'query_invalid', message, status: 400 });
|
|
360
|
+
throw cause;
|
|
361
|
+
}
|
|
362
|
+
})
|
|
363
|
+
.get('/v1/funding/chains', Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }), OpenApi.describeRoute({
|
|
364
|
+
description: 'Lists source chains and stablecoins understood by the funding route API, including provider-specific ids useful when comparing provider docs. This is static inventory metadata, not a live liquidity check.',
|
|
365
|
+
operationId: 'listFundingChains',
|
|
366
|
+
responses: OpenApi.responses({
|
|
367
|
+
success: {
|
|
368
|
+
description: 'Source-chain and stablecoin inventory for funding route discovery.',
|
|
369
|
+
example: fundingChainsResponseExample,
|
|
370
|
+
schema: schema.listFundingChains.Response,
|
|
371
|
+
},
|
|
372
|
+
}),
|
|
373
|
+
summary: 'List funding chains',
|
|
374
|
+
tags: ['Funding'],
|
|
375
|
+
}), Cache.response({
|
|
376
|
+
cacheControl: Cache.policies.stable,
|
|
377
|
+
name: 'tempo-api:funding-chains:v1',
|
|
378
|
+
key: (c) => c.req.url,
|
|
379
|
+
}), (c) => {
|
|
380
|
+
if (Auth.narrowAccess)
|
|
381
|
+
return Auth.paidAccessError(c);
|
|
382
|
+
return c.json(Response.validated(schema.listFundingChains.Response, {
|
|
383
|
+
data: FundingRoutes.listChains(),
|
|
384
|
+
}), 200);
|
|
385
|
+
})
|
|
386
|
+
.get('/v1/providers', Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }), OpenApi.validate('query', schema.listProviders.Query, {
|
|
387
|
+
code: 'query_invalid',
|
|
388
|
+
message: 'Invalid query parameters',
|
|
389
|
+
}), OpenApi.describeRoute({
|
|
390
|
+
description: 'Lists provider metadata, capability flags, auth requirements, and integration status across provider domains. `inventoryOnly` providers can appear in static route candidates; `planned` providers are visible for roadmap transparency and may not return candidates.',
|
|
391
|
+
operationId: 'listProviders',
|
|
392
|
+
responses: OpenApi.responses({
|
|
393
|
+
errors: { 400: { codes: ['query_invalid'] } },
|
|
394
|
+
success: {
|
|
395
|
+
description: 'Providers known to Tempo.',
|
|
396
|
+
example: providersResponseExample,
|
|
397
|
+
schema: schema.listProviders.Response,
|
|
398
|
+
},
|
|
399
|
+
}),
|
|
400
|
+
summary: 'List providers',
|
|
401
|
+
tags: ['Providers'],
|
|
402
|
+
}), Cache.response({
|
|
403
|
+
cacheControl: Cache.policies.stable,
|
|
404
|
+
name: 'tempo-api:providers:v1',
|
|
405
|
+
key: (c) => Cache.urlKey(c, schema.listProviders.Query),
|
|
406
|
+
}), (c) => {
|
|
407
|
+
if (Auth.narrowAccess)
|
|
408
|
+
return Auth.paidAccessError(c);
|
|
409
|
+
if (OpenApi.narrowValidation)
|
|
410
|
+
return OpenApi.validationError(c, {
|
|
411
|
+
code: 'query_invalid',
|
|
412
|
+
message: 'Invalid query parameters',
|
|
413
|
+
});
|
|
414
|
+
const query = c.req.valid('query');
|
|
415
|
+
return c.json(Response.validated(schema.listProviders.Response, {
|
|
416
|
+
data: FundingRoutes.listProviders({
|
|
417
|
+
adapters: options.adapters,
|
|
418
|
+
capability: query.capability,
|
|
419
|
+
}),
|
|
420
|
+
}), 200);
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
// Maps caller-input errors to a specific 400 message; anything else rethrows.
|
|
424
|
+
function requestErrorMessage(cause) {
|
|
425
|
+
if (cause instanceof FundingRoutes.InvalidAmountError)
|
|
426
|
+
return 'Invalid `sourceAmount`.';
|
|
427
|
+
if (cause instanceof FundingRoutes.UnsupportedIncludeError)
|
|
428
|
+
return 'Unsupported `include`.';
|
|
429
|
+
if (cause instanceof FundingRoutes.UnsupportedDestinationTokenError)
|
|
430
|
+
return 'Unsupported `destinationToken`.';
|
|
431
|
+
if (cause instanceof FundingRoutes.UnsupportedProviderError)
|
|
432
|
+
return 'Unsupported `provider`.';
|
|
433
|
+
if (cause instanceof FundingRoutes.UnsupportedSourceChainError)
|
|
434
|
+
return 'Unsupported `sourceChain`.';
|
|
435
|
+
return undefined;
|
|
436
|
+
}
|
|
437
|
+
function cacheBypass(request) {
|
|
438
|
+
const directives = (request.headers.get('Cache-Control') ??
|
|
439
|
+
request.headers.get('Pragma') ??
|
|
440
|
+
'').toLowerCase();
|
|
441
|
+
return directives.includes('no-cache') || directives.includes('no-store');
|
|
442
|
+
}
|
|
443
|
+
//# sourceMappingURL=funding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"funding.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/funding.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,11 +29,6 @@ export declare function indexer(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
29
29
|
outputFormat: "body";
|
|
30
30
|
status: 402;
|
|
31
31
|
input: {};
|
|
32
|
-
} | {
|
|
33
|
-
output: never;
|
|
34
|
-
outputFormat: never;
|
|
35
|
-
status: never;
|
|
36
|
-
input: {};
|
|
37
32
|
} | {
|
|
38
33
|
output: {
|
|
39
34
|
error: {
|
|
@@ -110,6 +105,11 @@ export declare function indexer(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
110
105
|
outputFormat: "json";
|
|
111
106
|
status: 422;
|
|
112
107
|
input: {};
|
|
108
|
+
} | {
|
|
109
|
+
output: never;
|
|
110
|
+
outputFormat: never;
|
|
111
|
+
status: never;
|
|
112
|
+
input: {};
|
|
113
113
|
};
|
|
114
114
|
};
|
|
115
115
|
}, "/", "/v1/indexer/query">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/receipts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/receipts.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import * as z from 'zod/mini';
|
|
|
4
4
|
import * as Auth from '../../../internal/Auth.js';
|
|
5
5
|
import * as Cache from '../../../internal/Cache.js';
|
|
6
6
|
import * as Cursor from '../../../internal/Cursor.js';
|
|
7
|
+
import * as Fees from '../../../internal/Fees.js';
|
|
7
8
|
import * as OpenApi from '../../../internal/OpenApi.js';
|
|
8
9
|
import * as Response from '../../../internal/Response.js';
|
|
9
10
|
import * as Schema from '../../../internal/Schema.js';
|
|
@@ -20,12 +21,6 @@ import * as Tokens from './tokens.js';
|
|
|
20
21
|
import { decodeTransactionType, embedFeeTokens, schema as txSchema } from './transactions.js';
|
|
21
22
|
/** Example transaction hash surfaced in OpenAPI docs. */
|
|
22
23
|
const exampleHash = '0x515801d7f9a5ac705e793e85904c9c69b3f1694b465cc8fb6ba3f0298dc82665';
|
|
23
|
-
// Tempo gas prices are denominated in attodollars (10^-18 USD) while fee-token
|
|
24
|
-
// balances use 6 decimals (microdollars, 10^-6 USD), so the fee charged to the
|
|
25
|
-
// fee payer — in the fee token's base units — is
|
|
26
|
-
// `ceil(gasUsed * effectiveGasPrice / 10^12)` (ceiling division). Mirrors
|
|
27
|
-
// `calc_gas_balance_spending` in tempoxyz/tempo.
|
|
28
|
-
const feeScalingFactor = 10n ** 12n;
|
|
29
24
|
/**
|
|
30
25
|
* Computes the fee charged to the fee payer, in the fee token's base units, from
|
|
31
26
|
* the receipt's `gasUsed` and decimal `effectiveGasPrice`. Returns undefined
|
|
@@ -34,8 +29,7 @@ const feeScalingFactor = 10n ** 12n;
|
|
|
34
29
|
function computeFeeAmount(gasUsed, effectiveGasPrice) {
|
|
35
30
|
if (gasUsed === undefined || effectiveGasPrice === undefined)
|
|
36
31
|
return undefined;
|
|
37
|
-
|
|
38
|
-
return ((product + feeScalingFactor - 1n) / feeScalingFactor).toString();
|
|
32
|
+
return Fees.fromGas(BigInt(gasUsed), BigInt(effectiveGasPrice)).toString();
|
|
39
33
|
}
|
|
40
34
|
/** Zod schemas owned by the receipt handlers. */
|
|
41
35
|
export var schema;
|