tapimo 0.1.0 → 0.2.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.
Files changed (385) hide show
  1. package/README.md +28 -15
  2. package/dist/ApiKey.d.ts +3 -1
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +1 -0
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +71 -3
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +117 -1
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +7139 -4197
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +133 -329
  13. package/dist/App.js.map +1 -1
  14. package/dist/Scope.d.ts +11 -4
  15. package/dist/Scope.d.ts.map +1 -1
  16. package/dist/Scope.js +12 -4
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/Webhooks.d.ts +2 -2
  19. package/dist/Webhooks.d.ts.map +1 -1
  20. package/dist/Webhooks.js +2 -2
  21. package/dist/Webhooks.js.map +1 -1
  22. package/dist/admin/App.d.ts +126 -53
  23. package/dist/admin/App.d.ts.map +1 -1
  24. package/dist/admin/apps/api-keys.d.ts +104 -6
  25. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  26. package/dist/admin/apps/api-keys.js +67 -0
  27. package/dist/admin/apps/api-keys.js.map +1 -1
  28. package/dist/admin/apps/scopes.d.ts +4 -1
  29. package/dist/admin/apps/scopes.d.ts.map +1 -1
  30. package/dist/admin/apps/verified-tokens.d.ts +115 -115
  31. package/dist/admin/apps/verified-tokens.js +1 -1
  32. package/dist/admin/apps/verified-tokens.js.map +1 -1
  33. package/dist/admin/ui.generated.d.ts +1 -1
  34. package/dist/admin/ui.generated.js +1 -1
  35. package/dist/apps/data/App.d.ts +19176 -0
  36. package/dist/apps/data/App.d.ts.map +1 -0
  37. package/dist/apps/data/App.js +236 -0
  38. package/dist/apps/data/App.js.map +1 -0
  39. package/dist/apps/data/index.d.ts +3 -0
  40. package/dist/apps/data/index.d.ts.map +1 -0
  41. package/dist/apps/data/index.js +3 -0
  42. package/dist/apps/data/index.js.map +1 -0
  43. package/dist/apps/{activities.d.ts → data/routes/activities.d.ts} +32 -32
  44. package/dist/apps/{activities.d.ts.map → data/routes/activities.d.ts.map} +1 -1
  45. package/dist/apps/{activities.js → data/routes/activities.js} +13 -13
  46. package/dist/apps/data/routes/activities.js.map +1 -0
  47. package/dist/apps/{addresses.d.ts → data/routes/addresses.d.ts} +22 -22
  48. package/dist/apps/{addresses.d.ts.map → data/routes/addresses.d.ts.map} +1 -1
  49. package/dist/apps/{addresses.js → data/routes/addresses.js} +5 -5
  50. package/dist/apps/data/routes/addresses.js.map +1 -0
  51. package/dist/apps/{balances.d.ts → data/routes/balances.d.ts} +49 -49
  52. package/dist/apps/data/routes/balances.d.ts.map +1 -0
  53. package/dist/apps/{balances.js → data/routes/balances.js} +42 -11
  54. package/dist/apps/data/routes/balances.js.map +1 -0
  55. package/dist/apps/{blocks.d.ts → data/routes/blocks.d.ts} +47 -47
  56. package/dist/apps/data/routes/blocks.d.ts.map +1 -0
  57. package/dist/apps/{blocks.js → data/routes/blocks.js} +13 -13
  58. package/dist/apps/data/routes/blocks.js.map +1 -0
  59. package/dist/apps/{coingecko.d.ts → data/routes/coingecko.d.ts} +183 -183
  60. package/dist/apps/data/routes/coingecko.d.ts.map +1 -0
  61. package/dist/apps/{coingecko.js → data/routes/coingecko.js} +13 -13
  62. package/dist/apps/data/routes/coingecko.js.map +1 -0
  63. package/dist/apps/{exchanges.d.ts → data/routes/exchanges.d.ts} +460 -460
  64. package/dist/apps/data/routes/exchanges.d.ts.map +1 -0
  65. package/dist/apps/{exchanges.js → data/routes/exchanges.js} +19 -19
  66. package/dist/apps/data/routes/exchanges.js.map +1 -0
  67. package/dist/apps/{fee-amm.d.ts → data/routes/fee-amm.d.ts} +94 -94
  68. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -0
  69. package/dist/apps/{fee-amm.js → data/routes/fee-amm.js} +17 -17
  70. package/dist/apps/data/routes/fee-amm.js.map +1 -0
  71. package/dist/apps/{indexer.d.ts → data/routes/indexer.d.ts} +4 -4
  72. package/dist/apps/data/routes/indexer.d.ts.map +1 -0
  73. package/dist/apps/{indexer.js → data/routes/indexer.js} +13 -9
  74. package/dist/apps/data/routes/indexer.js.map +1 -0
  75. package/dist/apps/{receipts.d.ts → data/routes/receipts.d.ts} +49 -49
  76. package/dist/apps/data/routes/receipts.d.ts.map +1 -0
  77. package/dist/apps/{receipts.js → data/routes/receipts.js} +12 -12
  78. package/dist/apps/data/routes/receipts.js.map +1 -0
  79. package/dist/apps/{rpc.d.ts → data/routes/rpc.d.ts} +4 -4
  80. package/dist/apps/data/routes/rpc.d.ts.map +1 -0
  81. package/dist/apps/{rpc.js → data/routes/rpc.js} +6 -6
  82. package/dist/apps/data/routes/rpc.js.map +1 -0
  83. package/dist/apps/{tokenlist.d.ts → data/routes/tokenlist.d.ts} +4 -4
  84. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -0
  85. package/dist/apps/{tokenlist.js → data/routes/tokenlist.js} +8 -8
  86. package/dist/apps/data/routes/tokenlist.js.map +1 -0
  87. package/dist/apps/{tokens.d.ts → data/routes/tokens.d.ts} +468 -468
  88. package/dist/apps/data/routes/tokens.d.ts.map +1 -0
  89. package/dist/apps/{tokens.js → data/routes/tokens.js} +19 -19
  90. package/dist/apps/data/routes/tokens.js.map +1 -0
  91. package/dist/apps/{transactions.d.ts → data/routes/transactions.d.ts} +304 -304
  92. package/dist/apps/data/routes/transactions.d.ts.map +1 -0
  93. package/dist/apps/{transactions.js → data/routes/transactions.js} +13 -13
  94. package/dist/apps/data/routes/transactions.js.map +1 -0
  95. package/dist/apps/{transfers.d.ts → data/routes/transfers.d.ts} +6 -6
  96. package/dist/apps/data/routes/transfers.d.ts.map +1 -0
  97. package/dist/apps/{transfers.js → data/routes/transfers.js} +13 -13
  98. package/dist/apps/data/routes/transfers.js.map +1 -0
  99. package/dist/apps/{verified-tokens.d.ts → data/routes/verified-tokens.d.ts} +42 -42
  100. package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -0
  101. package/dist/apps/{verified-tokens.js → data/routes/verified-tokens.js} +9 -9
  102. package/dist/apps/data/routes/verified-tokens.js.map +1 -0
  103. package/dist/apps/{webhooks.d.ts → data/routes/webhooks.d.ts} +62 -62
  104. package/dist/apps/{webhooks.d.ts.map → data/routes/webhooks.d.ts.map} +1 -1
  105. package/dist/apps/{webhooks.js → data/routes/webhooks.js} +30 -26
  106. package/dist/apps/data/routes/webhooks.js.map +1 -0
  107. package/dist/apps/docs/App.d.ts +27 -0
  108. package/dist/apps/docs/App.d.ts.map +1 -0
  109. package/dist/apps/docs/App.js +122 -0
  110. package/dist/apps/docs/App.js.map +1 -0
  111. package/dist/{internal/OpenApi.fonts.d.ts → apps/docs/fonts.d.ts} +1 -1
  112. package/dist/apps/docs/fonts.d.ts.map +1 -0
  113. package/dist/{internal/OpenApi.fonts.js → apps/docs/fonts.js} +1 -1
  114. package/dist/apps/docs/fonts.js.map +1 -0
  115. package/dist/apps/docs/index.d.ts +2 -0
  116. package/dist/apps/docs/index.d.ts.map +1 -0
  117. package/dist/apps/docs/index.js +2 -0
  118. package/dist/apps/docs/index.js.map +1 -0
  119. package/dist/{internal/OpenApi.logo.d.ts → apps/docs/logo.d.ts} +1 -1
  120. package/dist/apps/docs/logo.d.ts.map +1 -0
  121. package/dist/{internal/OpenApi.logo.js → apps/docs/logo.js} +1 -1
  122. package/dist/apps/docs/logo.js.map +1 -0
  123. package/dist/apps/index.d.ts +4 -0
  124. package/dist/apps/index.d.ts.map +1 -0
  125. package/dist/apps/index.js +4 -0
  126. package/dist/apps/index.js.map +1 -0
  127. package/dist/apps/metadata.d.ts +7 -0
  128. package/dist/apps/metadata.d.ts.map +1 -0
  129. package/dist/apps/metadata.js +15 -0
  130. package/dist/apps/metadata.js.map +1 -0
  131. package/dist/apps/platform/App.d.ts +2985 -0
  132. package/dist/apps/platform/App.d.ts.map +1 -0
  133. package/dist/apps/platform/App.js +74 -0
  134. package/dist/apps/platform/App.js.map +1 -0
  135. package/dist/apps/platform/index.d.ts +2 -0
  136. package/dist/apps/platform/index.d.ts.map +1 -0
  137. package/dist/apps/platform/index.js +2 -0
  138. package/dist/apps/platform/index.js.map +1 -0
  139. package/dist/apps/platform/routes/api-keys.d.ts +681 -0
  140. package/dist/apps/platform/routes/api-keys.d.ts.map +1 -0
  141. package/dist/apps/platform/routes/api-keys.js +328 -0
  142. package/dist/apps/platform/routes/api-keys.js.map +1 -0
  143. package/dist/apps/platform/routes/invitations.d.ts +733 -0
  144. package/dist/apps/platform/routes/invitations.d.ts.map +1 -0
  145. package/dist/apps/platform/routes/invitations.js +413 -0
  146. package/dist/apps/platform/routes/invitations.js.map +1 -0
  147. package/dist/apps/platform/routes/me.d.ts +95 -0
  148. package/dist/apps/platform/routes/me.d.ts.map +1 -0
  149. package/dist/apps/platform/routes/me.js +81 -0
  150. package/dist/apps/platform/routes/me.js.map +1 -0
  151. package/dist/apps/platform/routes/members.d.ts +554 -0
  152. package/dist/apps/platform/routes/members.d.ts.map +1 -0
  153. package/dist/apps/platform/routes/members.js +251 -0
  154. package/dist/apps/platform/routes/members.js.map +1 -0
  155. package/dist/apps/platform/routes/orgs.d.ts +582 -0
  156. package/dist/apps/platform/routes/orgs.d.ts.map +1 -0
  157. package/dist/apps/platform/routes/orgs.js +265 -0
  158. package/dist/apps/platform/routes/orgs.js.map +1 -0
  159. package/dist/apps/platform/routes/projects.d.ts +740 -0
  160. package/dist/apps/platform/routes/projects.d.ts.map +1 -0
  161. package/dist/apps/platform/routes/projects.js +286 -0
  162. package/dist/apps/platform/routes/projects.js.map +1 -0
  163. package/dist/apps/relay/App.d.ts +41 -0
  164. package/dist/apps/relay/App.d.ts.map +1 -0
  165. package/dist/apps/relay/App.js +103 -0
  166. package/dist/apps/relay/App.js.map +1 -0
  167. package/dist/apps/relay/Sponsorships.d.ts +107 -0
  168. package/dist/apps/relay/Sponsorships.d.ts.map +1 -0
  169. package/dist/apps/relay/Sponsorships.js +193 -0
  170. package/dist/apps/relay/Sponsorships.js.map +1 -0
  171. package/dist/apps/relay/index.d.ts +3 -0
  172. package/dist/apps/relay/index.d.ts.map +1 -0
  173. package/dist/apps/relay/index.js +3 -0
  174. package/dist/apps/relay/index.js.map +1 -0
  175. package/dist/cli/Cli.d.ts +1 -1
  176. package/dist/cli/Cli.js +1 -1
  177. package/dist/cli/commands/admin.d.ts +1 -1
  178. package/dist/cli/commands/admin.js +2 -2
  179. package/dist/cli/commands/admin.js.map +1 -1
  180. package/dist/db/Db.d.ts +10 -0
  181. package/dist/db/Db.d.ts.map +1 -1
  182. package/dist/db/Db.js +128 -0
  183. package/dist/db/Db.js.map +1 -1
  184. package/dist/db/Schema.d.ts +80 -0
  185. package/dist/db/Schema.d.ts.map +1 -1
  186. package/dist/db/Schema.js +99 -0
  187. package/dist/db/Schema.js.map +1 -1
  188. package/dist/db/tables/invitations.d.ts +84 -0
  189. package/dist/db/tables/invitations.d.ts.map +1 -0
  190. package/dist/db/tables/invitations.js +165 -0
  191. package/dist/db/tables/invitations.js.map +1 -0
  192. package/dist/db/tables/memberships.d.ts +108 -0
  193. package/dist/db/tables/memberships.d.ts.map +1 -0
  194. package/dist/db/tables/memberships.js +153 -0
  195. package/dist/db/tables/memberships.js.map +1 -0
  196. package/dist/db/tables/organizations.d.ts +44 -0
  197. package/dist/db/tables/organizations.d.ts.map +1 -1
  198. package/dist/db/tables/organizations.js +89 -0
  199. package/dist/db/tables/organizations.js.map +1 -1
  200. package/dist/db/tables/projects.d.ts +65 -0
  201. package/dist/db/tables/projects.d.ts.map +1 -0
  202. package/dist/db/tables/projects.js +75 -0
  203. package/dist/db/tables/projects.js.map +1 -0
  204. package/dist/db/tables/sponsoredTransactions.d.ts +120 -0
  205. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -0
  206. package/dist/db/tables/sponsoredTransactions.js +161 -0
  207. package/dist/db/tables/sponsoredTransactions.js.map +1 -0
  208. package/dist/db/tables/users.d.ts +48 -0
  209. package/dist/db/tables/users.d.ts.map +1 -0
  210. package/dist/db/tables/users.js +65 -0
  211. package/dist/db/tables/users.js.map +1 -0
  212. package/dist/handlers/internal/executionError.d.ts.map +1 -1
  213. package/dist/handlers/internal/executionError.js +2 -0
  214. package/dist/handlers/internal/executionError.js.map +1 -1
  215. package/dist/handlers/internal/multisig.d.ts +2 -6
  216. package/dist/handlers/internal/multisig.d.ts.map +1 -1
  217. package/dist/handlers/internal/multisig.js +11 -36
  218. package/dist/handlers/internal/multisig.js.map +1 -1
  219. package/dist/handlers/internal/sponsorship.d.ts +32 -2
  220. package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
  221. package/dist/handlers/internal/sponsorship.js +34 -9
  222. package/dist/handlers/internal/sponsorship.js.map +1 -1
  223. package/dist/handlers/relay.d.ts +6 -2
  224. package/dist/handlers/relay.d.ts.map +1 -1
  225. package/dist/handlers/relay.js +16 -2
  226. package/dist/handlers/relay.js.map +1 -1
  227. package/dist/internal/Auth.d.ts +208 -6
  228. package/dist/internal/Auth.d.ts.map +1 -1
  229. package/dist/internal/Auth.js +500 -21
  230. package/dist/internal/Auth.js.map +1 -1
  231. package/dist/internal/Log.d.ts +7 -3
  232. package/dist/internal/Log.d.ts.map +1 -1
  233. package/dist/internal/Log.js +4 -0
  234. package/dist/internal/Log.js.map +1 -1
  235. package/dist/internal/OpenApi.d.ts +0 -19
  236. package/dist/internal/OpenApi.d.ts.map +1 -1
  237. package/dist/internal/OpenApi.js +0 -57
  238. package/dist/internal/OpenApi.js.map +1 -1
  239. package/dist/internal/Store.d.ts +7 -1
  240. package/dist/internal/Store.d.ts.map +1 -1
  241. package/dist/internal/Store.js +16 -2
  242. package/dist/internal/Store.js.map +1 -1
  243. package/dist/internal/Viem.d.ts +84 -0
  244. package/dist/internal/Viem.d.ts.map +1 -1
  245. package/dist/internal/Webhooks.d.ts +1 -1
  246. package/dist/internal/Webhooks.d.ts.map +1 -1
  247. package/package.json +31 -5
  248. package/src/ApiKey.ts +1 -0
  249. package/src/ApiKeys.test.ts +104 -1
  250. package/src/ApiKeys.ts +154 -1
  251. package/src/App.test.ts +11187 -179
  252. package/src/App.ts +200 -420
  253. package/src/Client.test-d.ts +306 -15
  254. package/src/Scope.ts +13 -4
  255. package/src/Webhooks.ts +2 -2
  256. package/src/admin/apps/api-keys.test.ts +51 -0
  257. package/src/admin/apps/api-keys.ts +84 -0
  258. package/src/admin/apps/scopes.test.ts +5 -1
  259. package/src/admin/apps/verified-tokens.ts +1 -1
  260. package/src/admin/ui.generated.ts +1 -1
  261. package/src/apps/composition.test.ts +66 -0
  262. package/src/apps/data/App.ts +295 -0
  263. package/src/apps/data/index.ts +2 -0
  264. package/src/apps/{activities.test.ts → data/routes/activities.test.ts} +3 -3
  265. package/src/apps/{activities.ts → data/routes/activities.ts} +15 -15
  266. package/src/apps/{addresses.ts → data/routes/addresses.ts} +6 -6
  267. package/src/apps/{balances.test.ts → data/routes/balances.test.ts} +2 -2
  268. package/src/apps/{balances.ts → data/routes/balances.ts} +46 -12
  269. package/src/apps/{blocks.test.ts → data/routes/blocks.test.ts} +3 -3
  270. package/src/apps/{blocks.ts → data/routes/blocks.ts} +14 -14
  271. package/src/apps/{coingecko.test.ts → data/routes/coingecko.test.ts} +2 -2
  272. package/src/apps/{coingecko.ts → data/routes/coingecko.ts} +14 -14
  273. package/src/apps/{exchanges.test.ts → data/routes/exchanges.test.ts} +1 -1
  274. package/src/apps/{exchanges.ts → data/routes/exchanges.ts} +20 -20
  275. package/src/apps/{fee-amm.test.ts → data/routes/fee-amm.test.ts} +3 -3
  276. package/src/apps/{fee-amm.ts → data/routes/fee-amm.ts} +18 -18
  277. package/src/apps/{indexer.test.ts → data/routes/indexer.test.ts} +26 -5
  278. package/src/apps/{indexer.ts → data/routes/indexer.ts} +13 -10
  279. package/src/apps/{receipts.test.ts → data/routes/receipts.test.ts} +3 -3
  280. package/src/apps/{receipts.ts → data/routes/receipts.ts} +13 -13
  281. package/src/apps/{rpc.test.ts → data/routes/rpc.test.ts} +44 -5
  282. package/src/apps/{rpc.ts → data/routes/rpc.ts} +7 -7
  283. package/src/apps/{tokenlist.test.ts → data/routes/tokenlist.test.ts} +3 -3
  284. package/src/apps/{tokenlist.ts → data/routes/tokenlist.ts} +9 -9
  285. package/src/apps/{tokens.test.ts → data/routes/tokens.test.ts} +2 -2
  286. package/src/apps/{tokens.ts → data/routes/tokens.ts} +20 -20
  287. package/src/apps/{transactions.test.ts → data/routes/transactions.test.ts} +3 -3
  288. package/src/apps/{transactions.ts → data/routes/transactions.ts} +15 -15
  289. package/src/apps/{transfers.test.ts → data/routes/transfers.test.ts} +2 -2
  290. package/src/apps/{transfers.ts → data/routes/transfers.ts} +15 -15
  291. package/src/apps/{verified-tokens.test.ts → data/routes/verified-tokens.test.ts} +3 -3
  292. package/src/apps/{verified-tokens.ts → data/routes/verified-tokens.ts} +10 -10
  293. package/src/apps/{webhooks.test.ts → data/routes/webhooks.test.ts} +6 -6
  294. package/src/apps/{webhooks.ts → data/routes/webhooks.ts} +39 -35
  295. package/src/apps/docs/App.ts +136 -0
  296. package/src/apps/docs/index.ts +1 -0
  297. package/src/apps/index.ts +3 -0
  298. package/src/apps/metadata.ts +23 -0
  299. package/src/apps/platform/App.ts +130 -0
  300. package/src/apps/platform/index.ts +1 -0
  301. package/src/apps/platform/routes/api-keys.test.ts +330 -0
  302. package/src/apps/platform/routes/api-keys.ts +427 -0
  303. package/src/apps/platform/routes/invitations.test.ts +361 -0
  304. package/src/apps/platform/routes/invitations.ts +519 -0
  305. package/src/apps/platform/routes/me.test.ts +121 -0
  306. package/src/apps/platform/routes/me.ts +106 -0
  307. package/src/apps/platform/routes/members.test.ts +195 -0
  308. package/src/apps/platform/routes/members.ts +313 -0
  309. package/src/apps/platform/routes/orgs.test.ts +313 -0
  310. package/src/apps/platform/routes/orgs.ts +343 -0
  311. package/src/apps/platform/routes/projects.test.ts +181 -0
  312. package/src/apps/platform/routes/projects.ts +367 -0
  313. package/src/apps/relay/App.test.ts +484 -0
  314. package/src/apps/relay/App.ts +128 -0
  315. package/src/apps/relay/Sponsorships.test.ts +375 -0
  316. package/src/apps/relay/Sponsorships.ts +305 -0
  317. package/src/apps/relay/index.ts +2 -0
  318. package/src/cli/Cli.ts +1 -1
  319. package/src/cli/commands/admin.ts +2 -2
  320. package/src/db/Db.ts +159 -0
  321. package/src/db/Schema.ts +137 -0
  322. package/src/db/tables/invitations.ts +198 -0
  323. package/src/db/tables/memberships.ts +208 -0
  324. package/src/db/tables/organizations.test.ts +37 -1
  325. package/src/db/tables/organizations.ts +105 -0
  326. package/src/db/tables/projects.ts +107 -0
  327. package/src/db/tables/sponsoredTransactions.test.ts +218 -0
  328. package/src/db/tables/sponsoredTransactions.ts +236 -0
  329. package/src/db/tables/users.ts +85 -0
  330. package/src/handlers/internal/executionError.ts +2 -0
  331. package/src/handlers/internal/multisig.test.ts +84 -10
  332. package/src/handlers/internal/multisig.ts +15 -50
  333. package/src/handlers/internal/sponsorship.ts +74 -15
  334. package/src/handlers/{internal/relay.localnet.test.ts → relay.test.ts} +2 -2
  335. package/src/handlers/relay.ts +23 -5
  336. package/src/internal/Auth.test.ts +316 -0
  337. package/src/internal/Auth.ts +691 -25
  338. package/src/internal/Cursor.test.ts +3 -2
  339. package/src/internal/Log.test.ts +1 -1
  340. package/src/internal/Log.ts +11 -3
  341. package/src/internal/MetricSink.ts +1 -1
  342. package/src/internal/OpenApi.ts +0 -59
  343. package/src/internal/Store.test.ts +52 -0
  344. package/src/internal/Store.ts +24 -5
  345. package/src/internal/Tidx.local.test.ts +1 -1
  346. package/src/internal/VerifiedTokens.test.ts +1 -1
  347. package/src/internal/WebhookDestination.test.ts +1 -1
  348. package/src/internal/Webhooks.test.ts +4 -4
  349. package/src/internal/Webhooks.ts +1 -1
  350. package/dist/apps/activities.js.map +0 -1
  351. package/dist/apps/addresses.js.map +0 -1
  352. package/dist/apps/balances.d.ts.map +0 -1
  353. package/dist/apps/balances.js.map +0 -1
  354. package/dist/apps/blocks.d.ts.map +0 -1
  355. package/dist/apps/blocks.js.map +0 -1
  356. package/dist/apps/coingecko.d.ts.map +0 -1
  357. package/dist/apps/coingecko.js.map +0 -1
  358. package/dist/apps/exchanges.d.ts.map +0 -1
  359. package/dist/apps/exchanges.js.map +0 -1
  360. package/dist/apps/fee-amm.d.ts.map +0 -1
  361. package/dist/apps/fee-amm.js.map +0 -1
  362. package/dist/apps/indexer.d.ts.map +0 -1
  363. package/dist/apps/indexer.js.map +0 -1
  364. package/dist/apps/receipts.d.ts.map +0 -1
  365. package/dist/apps/receipts.js.map +0 -1
  366. package/dist/apps/rpc.d.ts.map +0 -1
  367. package/dist/apps/rpc.js.map +0 -1
  368. package/dist/apps/tokenlist.d.ts.map +0 -1
  369. package/dist/apps/tokenlist.js.map +0 -1
  370. package/dist/apps/tokens.d.ts.map +0 -1
  371. package/dist/apps/tokens.js.map +0 -1
  372. package/dist/apps/transactions.d.ts.map +0 -1
  373. package/dist/apps/transactions.js.map +0 -1
  374. package/dist/apps/transfers.d.ts.map +0 -1
  375. package/dist/apps/transfers.js.map +0 -1
  376. package/dist/apps/verified-tokens.d.ts.map +0 -1
  377. package/dist/apps/verified-tokens.js.map +0 -1
  378. package/dist/apps/webhooks.js.map +0 -1
  379. package/dist/internal/OpenApi.fonts.d.ts.map +0 -1
  380. package/dist/internal/OpenApi.fonts.js.map +0 -1
  381. package/dist/internal/OpenApi.logo.d.ts.map +0 -1
  382. package/dist/internal/OpenApi.logo.js.map +0 -1
  383. package/src/handlers/internal/multisig.localnet.test.ts +0 -146
  384. /package/src/{internal/OpenApi.fonts.ts → apps/docs/fonts.ts} +0 -0
  385. /package/src/{internal/OpenApi.logo.ts → apps/docs/logo.ts} +0 -0
@@ -10,18 +10,18 @@ import {
10
10
  import { Actions, Addresses, Tick } from 'viem/tempo'
11
11
  import * as z from 'zod/mini'
12
12
 
13
- import type * as App from '../App.js'
14
- import * as Auth from '../internal/Auth.js'
15
- import * as Cache from '../internal/Cache.js'
16
- import * as Cursor from '../internal/Cursor.js'
17
- import * as OpenApi from '../internal/OpenApi.js'
18
- import * as Response from '../internal/Response.js'
19
- import * as Schema from '../internal/Schema.js'
20
- import * as Store from '../internal/Store.js'
21
- import * as Timing from '../internal/Timing.js'
22
- import * as Ttl from '../internal/Ttl.js'
23
- import * as Value from '../internal/Value.js'
24
- import * as VerifiedTokens from '../internal/VerifiedTokens.js'
13
+ import type * as App from '../../../App.js'
14
+ import * as Auth from '../../../internal/Auth.js'
15
+ import * as Cache from '../../../internal/Cache.js'
16
+ import * as Cursor from '../../../internal/Cursor.js'
17
+ import * as OpenApi from '../../../internal/OpenApi.js'
18
+ import * as Response from '../../../internal/Response.js'
19
+ import * as Schema from '../../../internal/Schema.js'
20
+ import * as Store from '../../../internal/Store.js'
21
+ import * as Timing from '../../../internal/Timing.js'
22
+ import * as Ttl from '../../../internal/Ttl.js'
23
+ import * as Value from '../../../internal/Value.js'
24
+ import * as VerifiedTokens from '../../../internal/VerifiedTokens.js'
25
25
  import * as Tokens from './tokens.js'
26
26
 
27
27
  // Stablecoin DEX precompile. Pair lifecycle is announced by `PairCreated` from
@@ -1312,7 +1312,7 @@ export namespace schema {
1312
1312
  export function exchanges() {
1313
1313
  return new Hono<App.Environment>()
1314
1314
  .get(
1315
- '/swaps',
1315
+ '/v1/exchange/swaps',
1316
1316
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1317
1317
  OpenApi.validate('query', schema.getSwaps.Query, {
1318
1318
  code: 'query_invalid',
@@ -1422,7 +1422,7 @@ export function exchanges() {
1422
1422
  },
1423
1423
  )
1424
1424
  .get(
1425
- '/pairs',
1425
+ '/v1/exchange/pairs',
1426
1426
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1427
1427
  OpenApi.validate('query', schema.getPairs.Query, {
1428
1428
  code: 'query_invalid',
@@ -1529,7 +1529,7 @@ export function exchanges() {
1529
1529
  .get(
1530
1530
  // Single trading pair detail. The base address alone identifies the
1531
1531
  // pair (its quote is intrinsic to the base token on-chain).
1532
- '/pairs/:base',
1532
+ '/v1/exchange/pairs/:base',
1533
1533
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1534
1534
  OpenApi.validate('param', schema.getPair.Params, {
1535
1535
  code: 'pair_invalid',
@@ -1622,7 +1622,7 @@ export function exchanges() {
1622
1622
  )
1623
1623
  .get(
1624
1624
  // Resting-order feed, optionally scoped to one pair via `base`.
1625
- '/orders',
1625
+ '/v1/exchange/orders',
1626
1626
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1627
1627
  OpenApi.validate('query', schema.getOrders.Query, {
1628
1628
  code: 'query_invalid',
@@ -1747,7 +1747,7 @@ export function exchanges() {
1747
1747
  .get(
1748
1748
  // Single-order detail. The path-param schema rejects non-decimal
1749
1749
  // `orderId` values, surfacing the canonical `order_invalid` error.
1750
- '/orders/:orderId',
1750
+ '/v1/exchange/orders/:orderId',
1751
1751
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1752
1752
  OpenApi.validate('param', schema.getOrder.Params, {
1753
1753
  code: 'order_invalid',
@@ -1856,7 +1856,7 @@ export function exchanges() {
1856
1856
  )
1857
1857
  .get(
1858
1858
  // Paginated fill history for a single order.
1859
- '/orders/:orderId/fills',
1859
+ '/v1/exchange/orders/:orderId/fills',
1860
1860
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1861
1861
  OpenApi.validate('param', schema.getOrderFills.Params, {
1862
1862
  code: 'order_invalid',
@@ -1945,7 +1945,7 @@ export function exchanges() {
1945
1945
  .get(
1946
1946
  // OHLC (candlestick) aggregations for a single pair, addressed by its
1947
1947
  // base token.
1948
- '/pairs/:base/ohlc',
1948
+ '/v1/exchange/pairs/:base/ohlc',
1949
1949
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
1950
1950
  OpenApi.validate('param', schema.getPairOhlc.Params, {
1951
1951
  code: 'pair_invalid',
@@ -2053,7 +2053,7 @@ export function exchanges() {
2053
2053
  .get(
2054
2054
  // Orderbook depth (cumulative size per tick) for a single pair,
2055
2055
  // addressed by its base token.
2056
- '/pairs/:base/depth',
2056
+ '/v1/exchange/pairs/:base/depth',
2057
2057
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
2058
2058
  OpenApi.validate('param', schema.getPairDepth.Params, {
2059
2059
  code: 'pair_invalid',
@@ -1,8 +1,8 @@
1
1
  import { Abis, Addresses } from 'viem/tempo'
2
2
 
3
- import * as TestApp from '../../test/App.js'
4
- import * as Runtime from '../../test/runtime.js'
5
- import * as TestViem from '../../test/Viem.js'
3
+ import * as TestApp from '../../../../test/App.js'
4
+ import * as Runtime from '../../../../test/runtime.js'
5
+ import * as TestViem from '../../../../test/Viem.js'
6
6
  import * as FeeAmm from './fee-amm.js'
7
7
 
8
8
  /** Validator-side token with live fee-AMM activity on Tempo Moderato. */
@@ -3,18 +3,18 @@ import { AbiEvent, AbiParameters, Hash, type Hex, Value as core_Value } from 'ox
3
3
  import { Abis, Addresses } from 'viem/tempo'
4
4
  import * as z from 'zod/mini'
5
5
 
6
- import type * as App from '../App.js'
7
- import * as Auth from '../internal/Auth.js'
8
- import * as Cache from '../internal/Cache.js'
9
- import * as Cursor from '../internal/Cursor.js'
10
- import * as OpenApi from '../internal/OpenApi.js'
11
- import * as Response from '../internal/Response.js'
12
- import * as Schema from '../internal/Schema.js'
13
- import * as Store from '../internal/Store.js'
14
- import * as Timing from '../internal/Timing.js'
15
- import * as Ttl from '../internal/Ttl.js'
16
- import * as Value from '../internal/Value.js'
17
- import * as VerifiedTokens from '../internal/VerifiedTokens.js'
6
+ import type * as App from '../../../App.js'
7
+ import * as Auth from '../../../internal/Auth.js'
8
+ import * as Cache from '../../../internal/Cache.js'
9
+ import * as Cursor from '../../../internal/Cursor.js'
10
+ import * as OpenApi from '../../../internal/OpenApi.js'
11
+ import * as Response from '../../../internal/Response.js'
12
+ import * as Schema from '../../../internal/Schema.js'
13
+ import * as Store from '../../../internal/Store.js'
14
+ import * as Timing from '../../../internal/Timing.js'
15
+ import * as Ttl from '../../../internal/Ttl.js'
16
+ import * as Value from '../../../internal/Value.js'
17
+ import * as VerifiedTokens from '../../../internal/VerifiedTokens.js'
18
18
  import * as Tokens from './tokens.js'
19
19
 
20
20
  // The protocol Fee AMM lives at the reserved FeeManager address. Pools are
@@ -308,7 +308,7 @@ export namespace schema {
308
308
  export function feeAmm() {
309
309
  return new Hono<App.Environment>()
310
310
  .get(
311
- '/pools',
311
+ '/v1/fee-amm/pools',
312
312
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
313
313
  OpenApi.validate('query', schema.getFeeAmmPools.Query, {
314
314
  code: 'query_invalid',
@@ -420,7 +420,7 @@ export function feeAmm() {
420
420
  },
421
421
  )
422
422
  .get(
423
- '/mints',
423
+ '/v1/fee-amm/mints',
424
424
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
425
425
  OpenApi.validate('query', schema.getFeeAmmMints.Query, {
426
426
  code: 'query_invalid',
@@ -520,8 +520,8 @@ export function feeAmm() {
520
520
  * Discovers fee pools by aggregating the FeeManager's `Mint` logs into one
521
521
  * row per `(userToken, validatorToken)` pair, paginated and ordered by mint
522
522
  * count (most active first), so the real fee pools (thousands to millions of
523
- * mints) lead the head pages and the one-shot spam pairs (mint count 1) sink
524
- * to the tail.
523
+ * mints) lead the head pages and the spam pairs (mint count 1) sink to the
524
+ * tail.
525
525
  *
526
526
  * Keyset pagination on `(mint_count, topic2, topic3)`: `mint_count` ranks the
527
527
  * page (mutable — it grows as pools mint — so this is best-effort across mint
@@ -568,7 +568,7 @@ function listPools(c: Context<App.Environment>, options: listPools.Options) {
568
568
 
569
569
  // Raw-`logs` ClickHouse aggregate (dynamic query, hence the cast):
570
570
  // ordering is by mint count so the head pages surface the real fee
571
- // pools and the one-shot spam pairs sink to the tail. Fetch one extra
571
+ // pools and the single-mint spam pairs sink to the tail. Fetch one extra
572
572
  // row to detect `hasMore` without a separate count query.
573
573
  const result = await tidx.fetch({
574
574
  chainId,
@@ -669,7 +669,7 @@ declare namespace listPools {
669
669
  * Addresses are lowercased to match the indexer's stored casing.
670
670
  *
671
671
  * The set is intentionally gated to the verified list rather than every pooled
672
- * token: anyone can mint a one-shot spam pool, so the raw set of pool
672
+ * token: anyone can mint a single-mint spam pool, so the raw set of pool
673
673
  * `userToken`s is unbounded (tens of thousands on busy chains) and those
674
674
  * liquidity-less pools can't actually settle fees. Restricting to verified
675
675
  * tokens keeps the set small (a handful of USD stablecoins), bounds the scan
@@ -1,9 +1,9 @@
1
1
  import { RateLimit, Store } from 'tapimo'
2
- import * as TestApp from '../../test/App.js'
3
- import * as Mppx from '../../test/Mppx.js'
4
- import * as Runtime from '../../test/runtime.js'
5
- import * as Tempo from '../../test/Tempo.js'
6
- import * as Tidx from '../internal/Tidx.js'
2
+ import * as TestApp from '../../../../test/App.js'
3
+ import * as Mppx from '../../../../test/Mppx.js'
4
+ import * as Runtime from '../../../../test/runtime.js'
5
+ import * as Tempo from '../../../../test/Tempo.js'
6
+ import * as Tidx from '../../../internal/Tidx.js'
7
7
  import * as Indexer from './indexer.js'
8
8
 
9
9
  const chainId = String(Runtime.get().chainId)
@@ -84,6 +84,27 @@ describe('GET /indexer/query', () => {
84
84
  }
85
85
  })
86
86
 
87
+ test('forwards chain aliases to the upstream as numeric ids', async () => {
88
+ const fetch = vi.spyOn(globalThis, 'fetch').mockResolvedValue(
89
+ new Response(JSON.stringify({ columns: [], ok: true, row_count: 0, rows: [] }), {
90
+ headers: { 'content-type': 'application/json' },
91
+ }),
92
+ )
93
+ try {
94
+ const client = TestApp.client()
95
+ const response = await client.v1.indexer.query.$get(
96
+ { query: { chainId: 'mainnet', sql: 'select 2' } },
97
+ TestApp.auth,
98
+ )
99
+
100
+ expect(response.status).toMatchInlineSnapshot(`200`)
101
+ const upstream = new URL((fetch.mock.calls[0]![0] as Request).url)
102
+ expect(upstream.searchParams.get('chainId')).toMatchInlineSnapshot(`"4217"`)
103
+ } finally {
104
+ fetch.mockRestore()
105
+ }
106
+ })
107
+
87
108
  test('requires authentication', async () => {
88
109
  const client = TestApp.client()
89
110
  const response = await client.v1.indexer.query.$get(
@@ -1,14 +1,14 @@
1
1
  import { Hono, type Context, type TypedResponse } from 'hono'
2
2
  import * as z from 'zod/mini'
3
3
 
4
- import type * as App from '../App.js'
5
- import * as Auth from '../internal/Auth.js'
6
- import * as Cache from '../internal/Cache.js'
7
- import * as OpenApi from '../internal/OpenApi.js'
8
- import * as Path from '../internal/Path.js'
9
- import * as Response from '../internal/Response.js'
10
- import * as Schema from '../internal/Schema.js'
11
- import * as Tidx from '../internal/Tidx.js'
4
+ import type * as App from '../../../App.js'
5
+ import * as Auth from '../../../internal/Auth.js'
6
+ import * as Cache from '../../../internal/Cache.js'
7
+ import * as OpenApi from '../../../internal/OpenApi.js'
8
+ import * as Path from '../../../internal/Path.js'
9
+ import * as Response from '../../../internal/Response.js'
10
+ import * as Schema from '../../../internal/Schema.js'
11
+ import * as Tidx from '../../../internal/Tidx.js'
12
12
 
13
13
  // Request headers that must not be forwarded upstream: hop-by-hop headers, the
14
14
  // inbound host, and any caller auth so the consumer's Tempo API credentials never
@@ -98,7 +98,7 @@ export function indexer() {
98
98
  })
99
99
 
100
100
  return new Hono<App.Environment>().get(
101
- '/query',
101
+ '/v1/indexer/query',
102
102
  Auth.policy({ apiKey: { scopes: ['indexer:query'] }, mpp: true, public: true }),
103
103
  OpenApi.describeRoute({
104
104
  description:
@@ -250,7 +250,7 @@ async function passthrough(
250
250
 
251
251
  // Resolve the upstream base URL per chain so mainnet and testnet
252
252
  // requests reach the correct indexer.
253
- const chainIdParam = c.req.query('chainId')
253
+ const chainIdParam = c.req.query('chainId') ?? c.req.query('chain_id')
254
254
  const parsed = chainIdParam ? Schema.ChainId.safeParse(chainIdParam) : undefined
255
255
  const chainId = parsed?.success ? parsed.data : c.get('chainId')
256
256
  // Resolve the upstream for this caller. A resolver `tidx` can route by
@@ -275,6 +275,9 @@ async function passthrough(
275
275
  const upstream = new URL(baseUrl)
276
276
  upstream.pathname = Path.join(upstream.pathname, rest)
277
277
  upstream.search = requestUrl.search
278
+ if (parsed?.success)
279
+ for (const key of ['chainId', 'chain_id'])
280
+ if (upstream.searchParams.has(key)) upstream.searchParams.set(key, String(chainId))
278
281
 
279
282
  // Enforce the documented execution bounds server-side: an arbitrary SELECT
280
283
  // from an anonymous caller is always bounded even if the upstream's own
@@ -2,9 +2,9 @@ import { Schema } from 'tapimo'
2
2
  import { Hex } from 'ox'
3
3
  import { zeroHash } from 'viem'
4
4
 
5
- import * as TestApp from '../../test/App.js'
6
- import * as Runtime from '../../test/runtime.js'
7
- import * as Viem from '../../test/Viem.js'
5
+ import * as TestApp from '../../../../test/App.js'
6
+ import * as Runtime from '../../../../test/runtime.js'
7
+ import * as Viem from '../../../../test/Viem.js'
8
8
  import * as Receipts from './receipts.js'
9
9
 
10
10
  /** The decoded `type` names a humanized receipt may report. */
@@ -2,17 +2,17 @@ import { Hono, type Context } from 'hono'
2
2
  import { Hex } from 'ox'
3
3
  import * as z from 'zod/mini'
4
4
 
5
- import type * as App from '../App.js'
6
- import * as Auth from '../internal/Auth.js'
7
- import * as Cache from '../internal/Cache.js'
8
- import * as Cursor from '../internal/Cursor.js'
9
- import * as OpenApi from '../internal/OpenApi.js'
10
- import * as Response from '../internal/Response.js'
11
- import * as Schema from '../internal/Schema.js'
12
- import * as Store from '../internal/Store.js'
13
- import * as Timing from '../internal/Timing.js'
14
- import * as Ttl from '../internal/Ttl.js'
15
- import * as Value from '../internal/Value.js'
5
+ import type * as App from '../../../App.js'
6
+ import * as Auth from '../../../internal/Auth.js'
7
+ import * as Cache from '../../../internal/Cache.js'
8
+ import * as Cursor from '../../../internal/Cursor.js'
9
+ import * as OpenApi from '../../../internal/OpenApi.js'
10
+ import * as Response from '../../../internal/Response.js'
11
+ import * as Schema from '../../../internal/Schema.js'
12
+ import * as Store from '../../../internal/Store.js'
13
+ import * as Timing from '../../../internal/Timing.js'
14
+ import * as Ttl from '../../../internal/Ttl.js'
15
+ import * as Value from '../../../internal/Value.js'
16
16
  import * as Tokens from './tokens.js'
17
17
 
18
18
  // Receipts and transactions deliberately form an import cycle (receipts reuses
@@ -455,7 +455,7 @@ export namespace schema {
455
455
  export function receipts() {
456
456
  return new Hono<App.Environment>()
457
457
  .get(
458
- '/receipts',
458
+ '/v1/transactions/receipts',
459
459
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
460
460
  OpenApi.validate('query', schema.getReceipts.Query, {
461
461
  code: 'query_invalid',
@@ -548,7 +548,7 @@ export function receipts() {
548
548
  },
549
549
  )
550
550
  .get(
551
- '/:transactionHash/receipt',
551
+ '/v1/transactions/:transactionHash/receipt',
552
552
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
553
553
  OpenApi.validate('param', schema.getReceipt.Params, {
554
554
  code: 'transaction_invalid',
@@ -1,6 +1,6 @@
1
- import type * as Viem from '../internal/Viem.js'
2
- import * as TestApp from '../../test/App.js'
3
- import * as Runtime from '../../test/runtime.js'
1
+ import type * as Viem from '../../../internal/Viem.js'
2
+ import * as TestApp from '../../../../test/App.js'
3
+ import * as Runtime from '../../../../test/runtime.js'
4
4
 
5
5
  const runtime = Runtime.get()
6
6
 
@@ -315,7 +315,7 @@ describe('POST /rpc/relay', () => {
315
315
  `)
316
316
  })
317
317
 
318
- test('proxies for keys holding rpc-relay', async () => {
318
+ test('routes chain-scoped mounts to the relay pipeline', async () => {
319
319
  const fetch = mockRpc()
320
320
 
321
321
  try {
@@ -325,7 +325,46 @@ describe('POST /rpc/relay', () => {
325
325
  {
326
326
  id: 'key_relay',
327
327
  orgId: 'org_test',
328
- scopes: ['rpc-relay'],
328
+ scopes: ['rpc-relay:read'],
329
+ token: 'secret_relay_key',
330
+ },
331
+ ],
332
+ },
333
+ rpc: { url: () => 'https://internal.rpc.test/json-rpc' },
334
+ })
335
+
336
+ // Without a fee payer configured the relay pipeline answers this method
337
+ // itself; a proxied request would return the mock upstream's result.
338
+ const response = await app.fetch(
339
+ new Request('http://tempo-api.test/rpc/relay/42431', {
340
+ body: JSON.stringify({ id: 1, jsonrpc: '2.0', method: 'eth_signRawTransaction', params: ['0x76'] }), // prettier-ignore
341
+ headers: { 'tempo-api-key': 'secret_relay_key' },
342
+ method: 'POST',
343
+ }),
344
+ )
345
+
346
+ expect(response.status).toMatchInlineSnapshot(`200`)
347
+ const body = (await response.json()) as { error?: { message: string } | undefined }
348
+ expect(body.error?.message).toMatchInlineSnapshot(
349
+ `"eth_signRawTransaction requires a fee payer to be configured on the relay. Set the \`feePayer\` option in \`Handler.relay()\` to enable transaction sponsorship."`,
350
+ )
351
+ expect(fetch.calls).toMatchInlineSnapshot(`[]`)
352
+ } finally {
353
+ fetch.restore()
354
+ }
355
+ })
356
+
357
+ test('proxies for keys holding rpc-relay:read', async () => {
358
+ const fetch = mockRpc()
359
+
360
+ try {
361
+ const app = TestApp.create({
362
+ auth: {
363
+ keys: [
364
+ {
365
+ id: 'key_relay',
366
+ orgId: 'org_test',
367
+ scopes: ['rpc-relay:read'],
329
368
  token: 'secret_relay_key',
330
369
  },
331
370
  ],
@@ -1,12 +1,12 @@
1
1
  import { Hono, type Context, type TypedResponse } from 'hono'
2
2
  import * as z from 'zod/mini'
3
3
 
4
- import type * as App from '../App.js'
5
- import * as Auth from '../internal/Auth.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
- import * as Viem from '../internal/Viem.js'
4
+ import type * as App from '../../../App.js'
5
+ import * as Auth from '../../../internal/Auth.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
+ import * as Viem from '../../../internal/Viem.js'
10
10
 
11
11
  // Request headers that must not be forwarded upstream: hop-by-hop headers, the
12
12
  // inbound host, and any caller auth so the consumer's Tempo API credentials never
@@ -101,7 +101,7 @@ export namespace schema {
101
101
  /** Creates the raw Tempo RPC passthrough handler. */
102
102
  export function rpc() {
103
103
  return new Hono<App.Environment>().post(
104
- '/:chain{mainnet|testnet|[0-9]+}?',
104
+ '/rpc/:chain{(mainnet|testnet|[0-9]+)}?',
105
105
  Auth.policy({ apiKey: { scopes: ['data:read'] }, public: true }),
106
106
  OpenApi.describeRoute({
107
107
  description:
@@ -1,6 +1,6 @@
1
- import * as TestApp from '../../test/App.js'
2
- import * as Runtime from '../../test/runtime.js'
3
- import * as VerifiedTokens from '../internal/VerifiedTokens.js'
1
+ import * as TestApp from '../../../../test/App.js'
2
+ import * as Runtime from '../../../../test/runtime.js'
3
+ import * as VerifiedTokens from '../../../internal/VerifiedTokens.js'
4
4
  import * as Tokenlist from './tokenlist.js'
5
5
 
6
6
  /** Reader key for the data routes. */
@@ -1,14 +1,14 @@
1
1
  import { Hono } from 'hono'
2
2
  import * as z from 'zod/mini'
3
3
 
4
- import type * as App from '../App.js'
5
- import * as Auth from '../internal/Auth.js'
6
- import * as Cache from '../internal/Cache.js'
7
- import * as OpenApi from '../internal/OpenApi.js'
8
- import * as Response from '../internal/Response.js'
9
- import * as Schema from '../internal/Schema.js'
10
- import * as VerifiedTokens from '../internal/VerifiedTokens.js'
11
- import * as Viem from '../internal/Viem.js'
4
+ import type * as App from '../../../App.js'
5
+ import * as Auth from '../../../internal/Auth.js'
6
+ import * as Cache from '../../../internal/Cache.js'
7
+ import * as OpenApi from '../../../internal/OpenApi.js'
8
+ import * as Response from '../../../internal/Response.js'
9
+ import * as Schema from '../../../internal/Schema.js'
10
+ import * as VerifiedTokens from '../../../internal/VerifiedTokens.js'
11
+ import * as Viem from '../../../internal/Viem.js'
12
12
  import { getTokenLogo } from './tokens.js'
13
13
 
14
14
  /** Zod schemas owned by the tokenlist resource. */
@@ -124,7 +124,7 @@ export namespace schema {
124
124
  */
125
125
  export function tokenlist() {
126
126
  return new Hono<App.Environment>().get(
127
- '/',
127
+ '/v1/tokenlist',
128
128
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
129
129
  OpenApi.validate('query', schema.getTokenList.Query, {
130
130
  code: 'query_invalid',
@@ -1,7 +1,7 @@
1
1
  import { Schema } from 'tapimo'
2
2
 
3
- import * as TestApp from '../../test/App.js'
4
- import * as Runtime from '../../test/runtime.js'
3
+ import * as TestApp from '../../../../test/App.js'
4
+ import * as Runtime from '../../../../test/runtime.js'
5
5
  import * as Tokens from './tokens.js'
6
6
 
7
7
  // Verified enrichment is store-backed now that the build-time bundle is gone, so
@@ -3,20 +3,20 @@ import { AbiEvent, AbiParameters } from 'ox'
3
3
  import { type Address, ContractFunctionExecutionError } from 'viem'
4
4
  import * as z from 'zod/mini'
5
5
 
6
- import type * as App from '../App.js'
7
- import * as Auth from '../internal/Auth.js'
8
- import * as Cache from '../internal/Cache.js'
9
- import * as Cursor from '../internal/Cursor.js'
10
- import * as OpenApi from '../internal/OpenApi.js'
11
- import * as Path from '../internal/Path.js'
12
- import * as Response from '../internal/Response.js'
13
- import * as Schema from '../internal/Schema.js'
14
- import * as Store from '../internal/Store.js'
15
- import * as Tidx from '../internal/Tidx.js'
16
- import * as Timing from '../internal/Timing.js'
17
- import * as Ttl from '../internal/Ttl.js'
18
- import * as Value from '../internal/Value.js'
19
- import * as VerifiedTokens from '../internal/VerifiedTokens.js'
6
+ import type * as App from '../../../App.js'
7
+ import * as Auth from '../../../internal/Auth.js'
8
+ import * as Cache from '../../../internal/Cache.js'
9
+ import * as Cursor from '../../../internal/Cursor.js'
10
+ import * as OpenApi from '../../../internal/OpenApi.js'
11
+ import * as Path from '../../../internal/Path.js'
12
+ import * as Response from '../../../internal/Response.js'
13
+ import * as Schema from '../../../internal/Schema.js'
14
+ import * as Store from '../../../internal/Store.js'
15
+ import * as Tidx from '../../../internal/Tidx.js'
16
+ import * as Timing from '../../../internal/Timing.js'
17
+ import * as Ttl from '../../../internal/Ttl.js'
18
+ import * as Value from '../../../internal/Value.js'
19
+ import * as VerifiedTokens from '../../../internal/VerifiedTokens.js'
20
20
  import * as Transactions from './transactions.js'
21
21
 
22
22
  const tokenCreatedSignature =
@@ -552,7 +552,7 @@ export namespace schema {
552
552
  export function tokens() {
553
553
  return new Hono<App.Environment>()
554
554
  .get(
555
- '/',
555
+ '/v1/tokens',
556
556
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
557
557
  OpenApi.validate('query', schema.getTokens.Query, {
558
558
  code: 'query_invalid',
@@ -622,7 +622,7 @@ export function tokens() {
622
622
  },
623
623
  )
624
624
  .get(
625
- `/:symbol{${schema.getTokenBySymbol.routePattern}}`,
625
+ `/v1/tokens/:symbol{${schema.getTokenBySymbol.routePattern}}`,
626
626
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
627
627
  OpenApi.validate('param', schema.getTokenBySymbol.Params, {
628
628
  code: 'symbol_invalid',
@@ -694,7 +694,7 @@ export function tokens() {
694
694
  },
695
695
  )
696
696
  .get(
697
- '/:token',
697
+ '/v1/tokens/:token',
698
698
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
699
699
  OpenApi.validate('param', schema.getToken.Params, {
700
700
  code: 'token_invalid',
@@ -749,7 +749,7 @@ export function tokens() {
749
749
  },
750
750
  )
751
751
  .get(
752
- '/:token/logo',
752
+ '/v1/tokens/:token/logo',
753
753
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
754
754
  OpenApi.validate('param', schema.getTokenLogo.Params, {
755
755
  code: 'token_invalid',
@@ -839,7 +839,7 @@ export function tokens() {
839
839
  },
840
840
  )
841
841
  .get(
842
- '/:token/holders',
842
+ '/v1/tokens/:token/holders',
843
843
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
844
844
  OpenApi.validate('param', schema.getTokenHolders.Params, {
845
845
  code: 'token_invalid',
@@ -930,7 +930,7 @@ export function tokens() {
930
930
  },
931
931
  )
932
932
  .get(
933
- '/:token/transactions',
933
+ '/v1/tokens/:token/transactions',
934
934
  Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }),
935
935
  OpenApi.validate('param', schema.getTokenTransactions.Params, {
936
936
  code: 'token_invalid',
@@ -2,9 +2,9 @@ import { Schema } from 'tapimo'
2
2
  import { Hex } from 'ox'
3
3
  import { zeroHash } from 'viem'
4
4
 
5
- import * as TestApp from '../../test/App.js'
6
- import * as Runtime from '../../test/runtime.js'
7
- import * as Viem from '../../test/Viem.js'
5
+ import * as TestApp from '../../../../test/App.js'
6
+ import * as Runtime from '../../../../test/runtime.js'
7
+ import * as Viem from '../../../../test/Viem.js'
8
8
  import * as Transactions from './transactions.js'
9
9
 
10
10
  /** The decoded `type` names a humanized transaction may report. */