tapimo 0.0.2 → 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 (517) hide show
  1. package/README.md +38 -16
  2. package/dist/ApiKey.d.ts +14 -11
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +11 -12
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +207 -0
  7. package/dist/ApiKeys.d.ts.map +1 -0
  8. package/dist/ApiKeys.js +282 -0
  9. package/dist/ApiKeys.js.map +1 -0
  10. package/dist/App.d.ts +6771 -3819
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +145 -317
  13. package/dist/App.js.map +1 -1
  14. package/dist/Handler.d.ts +86 -0
  15. package/dist/Handler.d.ts.map +1 -0
  16. package/dist/Handler.js +83 -0
  17. package/dist/Handler.js.map +1 -0
  18. package/dist/Scope.d.ts +14 -4
  19. package/dist/Scope.d.ts.map +1 -1
  20. package/dist/Scope.js +16 -4
  21. package/dist/Scope.js.map +1 -1
  22. package/dist/Webhooks.d.ts +5 -7
  23. package/dist/Webhooks.d.ts.map +1 -1
  24. package/dist/Webhooks.js +11 -4
  25. package/dist/Webhooks.js.map +1 -1
  26. package/dist/admin/Access.d.ts +1 -3
  27. package/dist/admin/Access.d.ts.map +1 -1
  28. package/dist/admin/Access.js +1 -3
  29. package/dist/admin/Access.js.map +1 -1
  30. package/dist/admin/App.d.ts +167 -205
  31. package/dist/admin/App.d.ts.map +1 -1
  32. package/dist/admin/App.js +2 -4
  33. package/dist/admin/App.js.map +1 -1
  34. package/dist/admin/apps/api-keys.d.ts +105 -5
  35. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  36. package/dist/admin/apps/api-keys.js +75 -9
  37. package/dist/admin/apps/api-keys.js.map +1 -1
  38. package/dist/admin/apps/scopes.d.ts +6 -0
  39. package/dist/admin/apps/scopes.d.ts.map +1 -1
  40. package/dist/admin/apps/verified-tokens.d.ts +35 -149
  41. package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
  42. package/dist/admin/apps/verified-tokens.js +18 -39
  43. package/dist/admin/apps/verified-tokens.js.map +1 -1
  44. package/dist/admin/ui.generated.d.ts +1 -1
  45. package/dist/admin/ui.generated.js +1 -1
  46. package/dist/apps/data/App.d.ts +19176 -0
  47. package/dist/apps/data/App.d.ts.map +1 -0
  48. package/dist/apps/data/App.js +236 -0
  49. package/dist/apps/data/App.js.map +1 -0
  50. package/dist/apps/data/index.d.ts +3 -0
  51. package/dist/apps/data/index.d.ts.map +1 -0
  52. package/dist/apps/data/index.js +3 -0
  53. package/dist/apps/data/index.js.map +1 -0
  54. package/dist/apps/{activities.d.ts → data/routes/activities.d.ts} +32 -32
  55. package/dist/apps/{activities.d.ts.map → data/routes/activities.d.ts.map} +1 -1
  56. package/dist/apps/{activities.js → data/routes/activities.js} +13 -13
  57. package/dist/apps/data/routes/activities.js.map +1 -0
  58. package/dist/apps/{addresses.d.ts → data/routes/addresses.d.ts} +22 -22
  59. package/dist/apps/{addresses.d.ts.map → data/routes/addresses.d.ts.map} +1 -1
  60. package/dist/apps/{addresses.js → data/routes/addresses.js} +5 -5
  61. package/dist/apps/data/routes/addresses.js.map +1 -0
  62. package/dist/apps/{balances.d.ts → data/routes/balances.d.ts} +49 -49
  63. package/dist/apps/data/routes/balances.d.ts.map +1 -0
  64. package/dist/apps/{balances.js → data/routes/balances.js} +42 -11
  65. package/dist/apps/data/routes/balances.js.map +1 -0
  66. package/dist/apps/{blocks.d.ts → data/routes/blocks.d.ts} +47 -47
  67. package/dist/apps/data/routes/blocks.d.ts.map +1 -0
  68. package/dist/apps/{blocks.js → data/routes/blocks.js} +13 -13
  69. package/dist/apps/data/routes/blocks.js.map +1 -0
  70. package/dist/apps/{coingecko.d.ts → data/routes/coingecko.d.ts} +183 -183
  71. package/dist/apps/data/routes/coingecko.d.ts.map +1 -0
  72. package/dist/apps/{coingecko.js → data/routes/coingecko.js} +13 -13
  73. package/dist/apps/data/routes/coingecko.js.map +1 -0
  74. package/dist/apps/{exchanges.d.ts → data/routes/exchanges.d.ts} +460 -460
  75. package/dist/apps/data/routes/exchanges.d.ts.map +1 -0
  76. package/dist/apps/{exchanges.js → data/routes/exchanges.js} +19 -19
  77. package/dist/apps/data/routes/exchanges.js.map +1 -0
  78. package/dist/apps/{fee-amm.d.ts → data/routes/fee-amm.d.ts} +94 -94
  79. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -0
  80. package/dist/apps/{fee-amm.js → data/routes/fee-amm.js} +17 -17
  81. package/dist/apps/data/routes/fee-amm.js.map +1 -0
  82. package/dist/apps/{indexer.d.ts → data/routes/indexer.d.ts} +4 -4
  83. package/dist/apps/data/routes/indexer.d.ts.map +1 -0
  84. package/dist/apps/{indexer.js → data/routes/indexer.js} +13 -9
  85. package/dist/apps/data/routes/indexer.js.map +1 -0
  86. package/dist/apps/{receipts.d.ts → data/routes/receipts.d.ts} +6 -6
  87. package/dist/apps/data/routes/receipts.d.ts.map +1 -0
  88. package/dist/apps/{receipts.js → data/routes/receipts.js} +12 -12
  89. package/dist/apps/data/routes/receipts.js.map +1 -0
  90. package/dist/apps/{rpc.d.ts → data/routes/rpc.d.ts} +4 -4
  91. package/dist/apps/data/routes/rpc.d.ts.map +1 -0
  92. package/dist/apps/{rpc.js → data/routes/rpc.js} +6 -6
  93. package/dist/apps/data/routes/rpc.js.map +1 -0
  94. package/dist/apps/{tokenlist.d.ts → data/routes/tokenlist.d.ts} +4 -4
  95. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -0
  96. package/dist/apps/{tokenlist.js → data/routes/tokenlist.js} +8 -8
  97. package/dist/apps/data/routes/tokenlist.js.map +1 -0
  98. package/dist/apps/{tokens.d.ts → data/routes/tokens.d.ts} +11 -11
  99. package/dist/apps/data/routes/tokens.d.ts.map +1 -0
  100. package/dist/apps/{tokens.js → data/routes/tokens.js} +19 -19
  101. package/dist/apps/data/routes/tokens.js.map +1 -0
  102. package/dist/apps/{transactions.d.ts → data/routes/transactions.d.ts} +288 -288
  103. package/dist/apps/data/routes/transactions.d.ts.map +1 -0
  104. package/dist/apps/{transactions.js → data/routes/transactions.js} +13 -13
  105. package/dist/apps/data/routes/transactions.js.map +1 -0
  106. package/dist/apps/{transfers.d.ts → data/routes/transfers.d.ts} +35 -35
  107. package/dist/apps/data/routes/transfers.d.ts.map +1 -0
  108. package/dist/apps/{transfers.js → data/routes/transfers.js} +13 -13
  109. package/dist/apps/data/routes/transfers.js.map +1 -0
  110. package/dist/apps/{verified-tokens.d.ts → data/routes/verified-tokens.d.ts} +42 -42
  111. package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -0
  112. package/dist/apps/{verified-tokens.js → data/routes/verified-tokens.js} +9 -9
  113. package/dist/apps/data/routes/verified-tokens.js.map +1 -0
  114. package/dist/apps/{webhooks.d.ts → data/routes/webhooks.d.ts} +66 -63
  115. package/dist/apps/{webhooks.d.ts.map → data/routes/webhooks.d.ts.map} +1 -1
  116. package/dist/apps/{webhooks.js → data/routes/webhooks.js} +67 -59
  117. package/dist/apps/data/routes/webhooks.js.map +1 -0
  118. package/dist/apps/docs/App.d.ts +27 -0
  119. package/dist/apps/docs/App.d.ts.map +1 -0
  120. package/dist/apps/docs/App.js +122 -0
  121. package/dist/apps/docs/App.js.map +1 -0
  122. package/dist/{internal/OpenApi.fonts.d.ts → apps/docs/fonts.d.ts} +1 -1
  123. package/dist/apps/docs/fonts.d.ts.map +1 -0
  124. package/dist/{internal/OpenApi.fonts.js → apps/docs/fonts.js} +1 -1
  125. package/dist/apps/docs/fonts.js.map +1 -0
  126. package/dist/apps/docs/index.d.ts +2 -0
  127. package/dist/apps/docs/index.d.ts.map +1 -0
  128. package/dist/apps/docs/index.js +2 -0
  129. package/dist/apps/docs/index.js.map +1 -0
  130. package/dist/{internal/OpenApi.logo.d.ts → apps/docs/logo.d.ts} +1 -1
  131. package/dist/apps/docs/logo.d.ts.map +1 -0
  132. package/dist/{internal/OpenApi.logo.js → apps/docs/logo.js} +1 -1
  133. package/dist/apps/docs/logo.js.map +1 -0
  134. package/dist/apps/index.d.ts +4 -0
  135. package/dist/apps/index.d.ts.map +1 -0
  136. package/dist/apps/index.js +4 -0
  137. package/dist/apps/index.js.map +1 -0
  138. package/dist/apps/metadata.d.ts +7 -0
  139. package/dist/apps/metadata.d.ts.map +1 -0
  140. package/dist/apps/metadata.js +15 -0
  141. package/dist/apps/metadata.js.map +1 -0
  142. package/dist/apps/platform/App.d.ts +2985 -0
  143. package/dist/apps/platform/App.d.ts.map +1 -0
  144. package/dist/apps/platform/App.js +74 -0
  145. package/dist/apps/platform/App.js.map +1 -0
  146. package/dist/apps/platform/index.d.ts +2 -0
  147. package/dist/apps/platform/index.d.ts.map +1 -0
  148. package/dist/apps/platform/index.js +2 -0
  149. package/dist/apps/platform/index.js.map +1 -0
  150. package/dist/apps/platform/routes/api-keys.d.ts +681 -0
  151. package/dist/apps/platform/routes/api-keys.d.ts.map +1 -0
  152. package/dist/apps/platform/routes/api-keys.js +328 -0
  153. package/dist/apps/platform/routes/api-keys.js.map +1 -0
  154. package/dist/apps/platform/routes/invitations.d.ts +733 -0
  155. package/dist/apps/platform/routes/invitations.d.ts.map +1 -0
  156. package/dist/apps/platform/routes/invitations.js +413 -0
  157. package/dist/apps/platform/routes/invitations.js.map +1 -0
  158. package/dist/apps/platform/routes/me.d.ts +95 -0
  159. package/dist/apps/platform/routes/me.d.ts.map +1 -0
  160. package/dist/apps/platform/routes/me.js +81 -0
  161. package/dist/apps/platform/routes/me.js.map +1 -0
  162. package/dist/apps/platform/routes/members.d.ts +554 -0
  163. package/dist/apps/platform/routes/members.d.ts.map +1 -0
  164. package/dist/apps/platform/routes/members.js +251 -0
  165. package/dist/apps/platform/routes/members.js.map +1 -0
  166. package/dist/apps/platform/routes/orgs.d.ts +582 -0
  167. package/dist/apps/platform/routes/orgs.d.ts.map +1 -0
  168. package/dist/apps/platform/routes/orgs.js +265 -0
  169. package/dist/apps/platform/routes/orgs.js.map +1 -0
  170. package/dist/apps/platform/routes/projects.d.ts +740 -0
  171. package/dist/apps/platform/routes/projects.d.ts.map +1 -0
  172. package/dist/apps/platform/routes/projects.js +286 -0
  173. package/dist/apps/platform/routes/projects.js.map +1 -0
  174. package/dist/apps/relay/App.d.ts +41 -0
  175. package/dist/apps/relay/App.d.ts.map +1 -0
  176. package/dist/apps/relay/App.js +103 -0
  177. package/dist/apps/relay/App.js.map +1 -0
  178. package/dist/apps/relay/Sponsorships.d.ts +107 -0
  179. package/dist/apps/relay/Sponsorships.d.ts.map +1 -0
  180. package/dist/apps/relay/Sponsorships.js +193 -0
  181. package/dist/apps/relay/Sponsorships.js.map +1 -0
  182. package/dist/apps/relay/index.d.ts +3 -0
  183. package/dist/apps/relay/index.d.ts.map +1 -0
  184. package/dist/apps/relay/index.js +3 -0
  185. package/dist/apps/relay/index.js.map +1 -0
  186. package/dist/{Cli.d.ts → cli/Cli.d.ts} +13 -2
  187. package/dist/cli/Cli.d.ts.map +1 -0
  188. package/dist/cli/Cli.js +19 -0
  189. package/dist/cli/Cli.js.map +1 -0
  190. package/dist/cli/bin.d.ts +3 -0
  191. package/dist/cli/bin.d.ts.map +1 -0
  192. package/dist/cli/bin.js +4 -0
  193. package/dist/cli/bin.js.map +1 -0
  194. package/dist/cli/commands/admin.d.ts +15 -0
  195. package/dist/cli/commands/admin.d.ts.map +1 -0
  196. package/dist/cli/commands/admin.js +60 -0
  197. package/dist/cli/commands/admin.js.map +1 -0
  198. package/dist/cloudflare.d.ts +7 -0
  199. package/dist/cloudflare.d.ts.map +1 -1
  200. package/dist/cloudflare.js +9 -0
  201. package/dist/cloudflare.js.map +1 -1
  202. package/dist/db/Db.d.ts +113 -0
  203. package/dist/db/Db.d.ts.map +1 -0
  204. package/dist/db/Db.js +402 -0
  205. package/dist/db/Db.js.map +1 -0
  206. package/dist/db/Schema.d.ts +168 -0
  207. package/dist/db/Schema.d.ts.map +1 -0
  208. package/dist/db/Schema.js +229 -0
  209. package/dist/db/Schema.js.map +1 -0
  210. package/dist/db/tables/invitations.d.ts +84 -0
  211. package/dist/db/tables/invitations.d.ts.map +1 -0
  212. package/dist/db/tables/invitations.js +165 -0
  213. package/dist/db/tables/invitations.js.map +1 -0
  214. package/dist/db/tables/memberships.d.ts +108 -0
  215. package/dist/db/tables/memberships.d.ts.map +1 -0
  216. package/dist/db/tables/memberships.js +153 -0
  217. package/dist/db/tables/memberships.js.map +1 -0
  218. package/dist/db/tables/organizations.d.ts +123 -0
  219. package/dist/db/tables/organizations.d.ts.map +1 -0
  220. package/dist/db/tables/organizations.js +170 -0
  221. package/dist/db/tables/organizations.js.map +1 -0
  222. package/dist/db/tables/projects.d.ts +65 -0
  223. package/dist/db/tables/projects.d.ts.map +1 -0
  224. package/dist/db/tables/projects.js +75 -0
  225. package/dist/db/tables/projects.js.map +1 -0
  226. package/dist/db/tables/sponsoredTransactions.d.ts +120 -0
  227. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -0
  228. package/dist/db/tables/sponsoredTransactions.js +161 -0
  229. package/dist/db/tables/sponsoredTransactions.js.map +1 -0
  230. package/dist/db/tables/users.d.ts +48 -0
  231. package/dist/db/tables/users.d.ts.map +1 -0
  232. package/dist/db/tables/users.js +65 -0
  233. package/dist/db/tables/users.js.map +1 -0
  234. package/dist/db/tables/verifiedTokens.d.ts +53 -0
  235. package/dist/db/tables/verifiedTokens.d.ts.map +1 -0
  236. package/dist/db/tables/verifiedTokens.js +74 -0
  237. package/dist/db/tables/verifiedTokens.js.map +1 -0
  238. package/dist/db/tables/webhookDeliveries.d.ts +71 -0
  239. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -0
  240. package/dist/db/tables/webhookDeliveries.js +119 -0
  241. package/dist/db/tables/webhookDeliveries.js.map +1 -0
  242. package/dist/db/tables/webhookSubscriptions.d.ts +158 -0
  243. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -0
  244. package/dist/db/tables/webhookSubscriptions.js +272 -0
  245. package/dist/db/tables/webhookSubscriptions.js.map +1 -0
  246. package/dist/handlers/internal/executionError.d.ts +25 -0
  247. package/dist/handlers/internal/executionError.d.ts.map +1 -0
  248. package/dist/handlers/internal/executionError.js +186 -0
  249. package/dist/handlers/internal/executionError.js.map +1 -0
  250. package/dist/handlers/internal/multisig.d.ts +233 -0
  251. package/dist/handlers/internal/multisig.d.ts.map +1 -0
  252. package/dist/handlers/internal/multisig.js +542 -0
  253. package/dist/handlers/internal/multisig.js.map +1 -0
  254. package/dist/handlers/internal/requestListener.d.ts +124 -0
  255. package/dist/handlers/internal/requestListener.d.ts.map +1 -0
  256. package/dist/handlers/internal/requestListener.js +173 -0
  257. package/dist/handlers/internal/requestListener.js.map +1 -0
  258. package/dist/handlers/internal/sponsorship.d.ts +113 -0
  259. package/dist/handlers/internal/sponsorship.d.ts.map +1 -0
  260. package/dist/handlers/internal/sponsorship.js +128 -0
  261. package/dist/handlers/internal/sponsorship.js.map +1 -0
  262. package/dist/handlers/internal/types.d.ts +284 -0
  263. package/dist/handlers/internal/types.d.ts.map +1 -0
  264. package/dist/handlers/internal/types.js +2 -0
  265. package/dist/handlers/internal/types.js.map +1 -0
  266. package/dist/handlers/internal/utils.d.ts +34 -0
  267. package/dist/handlers/internal/utils.d.ts.map +1 -0
  268. package/dist/handlers/internal/utils.js +131 -0
  269. package/dist/handlers/internal/utils.js.map +1 -0
  270. package/dist/handlers/relay.d.ts +123 -0
  271. package/dist/handlers/relay.d.ts.map +1 -0
  272. package/dist/handlers/relay.js +1278 -0
  273. package/dist/handlers/relay.js.map +1 -0
  274. package/dist/index.d.ts +4 -2
  275. package/dist/index.d.ts.map +1 -1
  276. package/dist/index.js +4 -2
  277. package/dist/index.js.map +1 -1
  278. package/dist/internal/Auth.d.ts +224 -16
  279. package/dist/internal/Auth.d.ts.map +1 -1
  280. package/dist/internal/Auth.js +572 -33
  281. package/dist/internal/Auth.js.map +1 -1
  282. package/dist/internal/Log.d.ts +7 -3
  283. package/dist/internal/Log.d.ts.map +1 -1
  284. package/dist/internal/Log.js +4 -0
  285. package/dist/internal/Log.js.map +1 -1
  286. package/dist/internal/OpenApi.d.ts +0 -19
  287. package/dist/internal/OpenApi.d.ts.map +1 -1
  288. package/dist/internal/OpenApi.js +0 -57
  289. package/dist/internal/OpenApi.js.map +1 -1
  290. package/dist/internal/RpcSchema.d.ts +10 -0
  291. package/dist/internal/RpcSchema.d.ts.map +1 -0
  292. package/dist/internal/RpcSchema.js +2 -0
  293. package/dist/internal/RpcSchema.js.map +1 -0
  294. package/dist/internal/Store.d.ts +49 -4
  295. package/dist/internal/Store.d.ts.map +1 -1
  296. package/dist/internal/Store.js +81 -5
  297. package/dist/internal/Store.js.map +1 -1
  298. package/dist/internal/VerifiedTokens.d.ts +15 -34
  299. package/dist/internal/VerifiedTokens.d.ts.map +1 -1
  300. package/dist/internal/VerifiedTokens.js +115 -159
  301. package/dist/internal/VerifiedTokens.js.map +1 -1
  302. package/dist/internal/Viem.d.ts +84 -0
  303. package/dist/internal/Viem.d.ts.map +1 -1
  304. package/dist/internal/Webhooks.d.ts +50 -36
  305. package/dist/internal/Webhooks.d.ts.map +1 -1
  306. package/dist/internal/Webhooks.js +92 -205
  307. package/dist/internal/Webhooks.js.map +1 -1
  308. package/package.json +37 -6
  309. package/src/ApiKey.test.ts +3 -3
  310. package/src/ApiKey.ts +11 -12
  311. package/src/ApiKeys.test.ts +278 -0
  312. package/src/ApiKeys.ts +358 -0
  313. package/src/App.test-d.ts +1 -1
  314. package/src/App.test.ts +40508 -19083
  315. package/src/App.ts +239 -416
  316. package/src/Client.test-d.ts +307 -16
  317. package/src/Handler.ts +154 -0
  318. package/src/Scope.ts +17 -4
  319. package/src/Webhooks.test.ts +8 -7
  320. package/src/Webhooks.ts +13 -7
  321. package/src/admin/Access.ts +1 -3
  322. package/src/admin/App.ts +19 -24
  323. package/src/admin/apps/api-keys.test.ts +70 -18
  324. package/src/admin/apps/api-keys.ts +92 -9
  325. package/src/admin/apps/scopes.test.ts +8 -0
  326. package/src/admin/apps/verified-tokens.test.ts +3 -30
  327. package/src/admin/apps/verified-tokens.ts +18 -37
  328. package/src/admin/ui.generated.ts +1 -1
  329. package/src/apps/composition.test.ts +66 -0
  330. package/src/apps/data/App.ts +295 -0
  331. package/src/apps/data/index.ts +2 -0
  332. package/src/apps/{activities.test.ts → data/routes/activities.test.ts} +3 -3
  333. package/src/apps/{activities.ts → data/routes/activities.ts} +15 -15
  334. package/src/apps/{addresses.ts → data/routes/addresses.ts} +6 -6
  335. package/src/apps/{balances.test.ts → data/routes/balances.test.ts} +6 -5
  336. package/src/apps/{balances.ts → data/routes/balances.ts} +46 -12
  337. package/src/apps/{blocks.test.ts → data/routes/blocks.test.ts} +4 -4
  338. package/src/apps/{blocks.ts → data/routes/blocks.ts} +14 -14
  339. package/src/apps/{coingecko.test.ts → data/routes/coingecko.test.ts} +2 -2
  340. package/src/apps/{coingecko.ts → data/routes/coingecko.ts} +14 -14
  341. package/src/apps/{exchanges.test.ts → data/routes/exchanges.test.ts} +2 -2
  342. package/src/apps/{exchanges.ts → data/routes/exchanges.ts} +20 -20
  343. package/src/apps/{fee-amm.test.ts → data/routes/fee-amm.test.ts} +3 -3
  344. package/src/apps/{fee-amm.ts → data/routes/fee-amm.ts} +18 -18
  345. package/src/apps/{indexer.test.ts → data/routes/indexer.test.ts} +27 -6
  346. package/src/apps/{indexer.ts → data/routes/indexer.ts} +13 -10
  347. package/src/apps/{receipts.test.ts → data/routes/receipts.test.ts} +4 -4
  348. package/src/apps/{receipts.ts → data/routes/receipts.ts} +13 -13
  349. package/src/apps/{rpc.test.ts → data/routes/rpc.test.ts} +142 -13
  350. package/src/apps/{rpc.ts → data/routes/rpc.ts} +7 -7
  351. package/src/apps/{tokenlist.test.ts → data/routes/tokenlist.test.ts} +8 -10
  352. package/src/apps/{tokenlist.ts → data/routes/tokenlist.ts} +9 -9
  353. package/src/apps/{tokens.test.ts → data/routes/tokens.test.ts} +6 -5
  354. package/src/apps/{tokens.ts → data/routes/tokens.ts} +20 -20
  355. package/src/apps/{transactions.test.ts → data/routes/transactions.test.ts} +4 -4
  356. package/src/apps/{transactions.ts → data/routes/transactions.ts} +15 -15
  357. package/src/apps/{transfers.test.ts → data/routes/transfers.test.ts} +3 -3
  358. package/src/apps/{transfers.ts → data/routes/transfers.ts} +15 -15
  359. package/src/apps/{verified-tokens.test.ts → data/routes/verified-tokens.test.ts} +27 -15
  360. package/src/apps/{verified-tokens.ts → data/routes/verified-tokens.ts} +10 -10
  361. package/src/apps/{webhooks.test.ts → data/routes/webhooks.test.ts} +137 -150
  362. package/src/apps/{webhooks.ts → data/routes/webhooks.ts} +83 -81
  363. package/src/apps/docs/App.ts +136 -0
  364. package/src/apps/docs/index.ts +1 -0
  365. package/src/apps/index.ts +3 -0
  366. package/src/apps/metadata.ts +23 -0
  367. package/src/apps/platform/App.ts +130 -0
  368. package/src/apps/platform/index.ts +1 -0
  369. package/src/apps/platform/routes/api-keys.test.ts +330 -0
  370. package/src/apps/platform/routes/api-keys.ts +427 -0
  371. package/src/apps/platform/routes/invitations.test.ts +361 -0
  372. package/src/apps/platform/routes/invitations.ts +519 -0
  373. package/src/apps/platform/routes/me.test.ts +121 -0
  374. package/src/apps/platform/routes/me.ts +106 -0
  375. package/src/apps/platform/routes/members.test.ts +195 -0
  376. package/src/apps/platform/routes/members.ts +313 -0
  377. package/src/apps/platform/routes/orgs.test.ts +313 -0
  378. package/src/apps/platform/routes/orgs.ts +343 -0
  379. package/src/apps/platform/routes/projects.test.ts +181 -0
  380. package/src/apps/platform/routes/projects.ts +367 -0
  381. package/src/apps/relay/App.test.ts +484 -0
  382. package/src/apps/relay/App.ts +128 -0
  383. package/src/apps/relay/Sponsorships.test.ts +375 -0
  384. package/src/apps/relay/Sponsorships.ts +305 -0
  385. package/src/apps/relay/index.ts +2 -0
  386. package/src/{Cli.test.ts → cli/Cli.test.ts} +10 -9
  387. package/src/{Cli.ts → cli/Cli.ts} +16 -9
  388. package/src/cli/bin.ts +4 -0
  389. package/src/cli/commands/admin.test.ts +71 -0
  390. package/src/cli/commands/admin.ts +60 -0
  391. package/src/cloudflare.ts +10 -0
  392. package/src/db/Db.test.ts +84 -0
  393. package/src/db/Db.ts +542 -0
  394. package/src/db/Schema.ts +301 -0
  395. package/src/db/tables/invitations.ts +198 -0
  396. package/src/db/tables/memberships.ts +208 -0
  397. package/src/db/tables/organizations.test.ts +160 -0
  398. package/src/db/tables/organizations.ts +232 -0
  399. package/src/db/tables/projects.ts +107 -0
  400. package/src/db/tables/sponsoredTransactions.test.ts +218 -0
  401. package/src/db/tables/sponsoredTransactions.ts +236 -0
  402. package/src/db/tables/users.ts +85 -0
  403. package/src/db/tables/verifiedTokens.ts +111 -0
  404. package/src/db/tables/webhookDeliveries.ts +159 -0
  405. package/src/db/tables/webhookSubscriptions.ts +358 -0
  406. package/src/handlers/internal/executionError.ts +207 -0
  407. package/src/handlers/internal/multisig.test.ts +818 -0
  408. package/src/handlers/internal/multisig.ts +823 -0
  409. package/src/handlers/internal/requestListener.ts +273 -0
  410. package/src/handlers/internal/sponsorship.ts +245 -0
  411. package/src/handlers/internal/types.ts +378 -0
  412. package/src/handlers/internal/utils.ts +153 -0
  413. package/src/handlers/relay.test.ts +2035 -0
  414. package/src/handlers/relay.ts +1623 -0
  415. package/src/index.ts +4 -2
  416. package/src/internal/Auth.test.ts +337 -21
  417. package/src/internal/Auth.ts +783 -44
  418. package/src/internal/Cursor.test.ts +3 -2
  419. package/src/internal/Log.test.ts +1 -1
  420. package/src/internal/Log.ts +11 -3
  421. package/src/internal/MetricSink.ts +1 -1
  422. package/src/internal/OpenApi.ts +0 -59
  423. package/src/internal/RateLimit.test.ts +1 -1
  424. package/src/internal/RpcSchema.ts +10 -0
  425. package/src/internal/Store.test.ts +150 -10
  426. package/src/internal/Store.ts +136 -11
  427. package/src/internal/Tidx.local.test.ts +1 -1
  428. package/src/internal/VerifiedTokens.test.ts +99 -115
  429. package/src/internal/VerifiedTokens.ts +123 -175
  430. package/src/internal/WebhookDestination.test.ts +1 -1
  431. package/src/internal/Webhooks.test.ts +111 -111
  432. package/src/internal/Webhooks.ts +103 -221
  433. package/dist/ApiKeySource.d.ts +0 -166
  434. package/dist/ApiKeySource.d.ts.map +0 -1
  435. package/dist/ApiKeySource.js +0 -234
  436. package/dist/ApiKeySource.js.map +0 -1
  437. package/dist/Cli.d.ts.map +0 -1
  438. package/dist/Cli.js +0 -13
  439. package/dist/Cli.js.map +0 -1
  440. package/dist/apps/activities.js.map +0 -1
  441. package/dist/apps/addresses.js.map +0 -1
  442. package/dist/apps/balances.d.ts.map +0 -1
  443. package/dist/apps/balances.js.map +0 -1
  444. package/dist/apps/blocks.d.ts.map +0 -1
  445. package/dist/apps/blocks.js.map +0 -1
  446. package/dist/apps/coingecko.d.ts.map +0 -1
  447. package/dist/apps/coingecko.js.map +0 -1
  448. package/dist/apps/exchanges.d.ts.map +0 -1
  449. package/dist/apps/exchanges.js.map +0 -1
  450. package/dist/apps/fee-amm.d.ts.map +0 -1
  451. package/dist/apps/fee-amm.js.map +0 -1
  452. package/dist/apps/indexer.d.ts.map +0 -1
  453. package/dist/apps/indexer.js.map +0 -1
  454. package/dist/apps/receipts.d.ts.map +0 -1
  455. package/dist/apps/receipts.js.map +0 -1
  456. package/dist/apps/rpc.d.ts.map +0 -1
  457. package/dist/apps/rpc.js.map +0 -1
  458. package/dist/apps/tokenlist.d.ts.map +0 -1
  459. package/dist/apps/tokenlist.js.map +0 -1
  460. package/dist/apps/tokens.d.ts.map +0 -1
  461. package/dist/apps/tokens.js.map +0 -1
  462. package/dist/apps/transactions.d.ts.map +0 -1
  463. package/dist/apps/transactions.js.map +0 -1
  464. package/dist/apps/transfers.d.ts.map +0 -1
  465. package/dist/apps/transfers.js.map +0 -1
  466. package/dist/apps/verified-tokens.d.ts.map +0 -1
  467. package/dist/apps/verified-tokens.js.map +0 -1
  468. package/dist/apps/webhooks.js.map +0 -1
  469. package/dist/internal/OpenApi.fonts.d.ts.map +0 -1
  470. package/dist/internal/OpenApi.fonts.js.map +0 -1
  471. package/dist/internal/OpenApi.logo.d.ts.map +0 -1
  472. package/dist/internal/OpenApi.logo.js.map +0 -1
  473. package/seeds/31318/icons/0x20c0000000000000000000000000000000000000.svg +0 -1
  474. package/seeds/31318/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
  475. package/seeds/31318/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
  476. package/seeds/31318/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
  477. package/seeds/31318/verified-tokens.json +0 -30
  478. package/seeds/4217/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
  479. package/seeds/4217/icons/0x20c000000000000000000000048c8f36df1c9a4a.svg +0 -1
  480. package/seeds/4217/icons/0x20c0000000000000000000000520792dcccccccc.svg +0 -1
  481. package/seeds/4217/icons/0x20c0000000000000000000000a6da882d075a4c3.svg +0 -4
  482. package/seeds/4217/icons/0x20c000000000000000000000111111111e910f0f.svg +0 -30
  483. package/seeds/4217/icons/0x20c00000000000000000000014f22ca97301eb73.svg +0 -1
  484. package/seeds/4217/icons/0x20c0000000000000000000001621e21f71cf12fb.svg +0 -1
  485. package/seeds/4217/icons/0x20c0000000000000000000002f52d5cc21a3207b.svg +0 -1
  486. package/seeds/4217/icons/0x20c0000000000000000000003158081efd85bfc2.svg +0 -11
  487. package/seeds/4217/icons/0x20c0000000000000000000003554d28269e0f3c2.svg +0 -1
  488. package/seeds/4217/icons/0x20c000000000000000000000383a23bacb546ab9.svg +0 -1
  489. package/seeds/4217/icons/0x20c00000000000000000000042109aef2f8b28e1.png +0 -0
  490. package/seeds/4217/icons/0x20c0000000000000000000005c0bac7cef389a11.svg +0 -1
  491. package/seeds/4217/icons/0x20c0000000000000000000006fd9a167923ba194.png +0 -0
  492. package/seeds/4217/icons/0x20c0000000000000000000007f7ba549dd0251b9.svg +0 -1
  493. package/seeds/4217/icons/0x20c0000000000000000000008191667423f70e67.svg +0 -5
  494. package/seeds/4217/icons/0x20c0000000000000000000008ee4fcff88888888.svg +0 -1
  495. package/seeds/4217/icons/0x20c0000000000000000000009a4a4b17e0dc6651.svg +0 -1
  496. package/seeds/4217/icons/0x20c000000000000000000000ab02d39df30bd17e.svg +0 -1
  497. package/seeds/4217/icons/0x20c000000000000000000000ae247a1130450f09.svg +0 -1
  498. package/seeds/4217/icons/0x20c000000000000000000000aeed2ec36a54d0e5.svg +0 -1
  499. package/seeds/4217/icons/0x20c000000000000000000000b9537d11c60e8b50.svg +0 -1
  500. package/seeds/4217/icons/0x20c000000000000000000000bd95bfb69fbe6ce3.svg +0 -1
  501. package/seeds/4217/icons/0x20c000000000000000000000c412ec89d0c08be5.svg +0 -1
  502. package/seeds/4217/icons/0x20c000000000000000000000f047dd7018e50367.png +0 -0
  503. package/seeds/4217/verified-tokens.json +0 -177
  504. package/seeds/42431/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
  505. package/seeds/42431/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
  506. package/seeds/42431/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
  507. package/seeds/42431/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
  508. package/seeds/42431/icons/0x20c0000000000000000000009e8d7eb59b783726.svg +0 -1
  509. package/seeds/42431/icons/0x20c000000000000000000000d72572838bbee59c.svg +0 -1
  510. package/seeds/42431/verified-tokens.json +0 -44
  511. package/seeds/openrpc/README.md +0 -27
  512. package/seeds/openrpc/execution-apis.json +0 -8989
  513. package/src/ApiKeySource.test-d.ts +0 -11
  514. package/src/ApiKeySource.test.ts +0 -295
  515. package/src/ApiKeySource.ts +0 -303
  516. /package/src/{internal/OpenApi.fonts.ts → apps/docs/fonts.ts} +0 -0
  517. /package/src/{internal/OpenApi.logo.ts → apps/docs/logo.ts} +0 -0
@@ -0,0 +1,378 @@
1
+ /** Combines members of an intersection into a readable type. */
2
+ // https://twitter.com/mattpocockuk/status/1622730173446557697?s=20&t=NdpAcmEFXY01xkqU3KO0Mg
3
+ export type Compute<type> = { [key in keyof type]: type[key] } & unknown
4
+
5
+ declare const symbol: unique symbol
6
+
7
+ /**
8
+ * Creates a branded type of `T` with the brand `U`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * type Result = Branded<string, 'foo'>
13
+ * // ^? type Result = string & { [symbol]: 'foo' }
14
+ * ```
15
+ */
16
+ export type Branded<T, U> = T & { [symbol]: U }
17
+
18
+ /**
19
+ * Filters out all members of `T` that are not `P`
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * type Result = Filter<['a', 'b', 'c'], 'b'>
24
+ * // ^? type Result = ['a', 'c']
25
+ * ```
26
+ *
27
+ * @internal
28
+ */
29
+ export type Filter<
30
+ T extends readonly unknown[],
31
+ P,
32
+ Acc extends readonly unknown[] = [],
33
+ > = T extends readonly [infer F, ...infer Rest extends readonly unknown[]]
34
+ ? [F] extends [P]
35
+ ? Filter<Rest, P, [...Acc, F]>
36
+ : Filter<Rest, P, Acc>
37
+ : readonly [...Acc]
38
+
39
+ /**
40
+ * Checks if `T` can be narrowed further than `U`
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * type Result = IsNarrowable<'foo', string>
45
+ * // ^? true
46
+ * ```
47
+ */
48
+ export type IsNarrowable<T, U> =
49
+ IsNever<(T extends U ? true : false) & (U extends T ? false : true)> extends true ? false : true
50
+
51
+ /**
52
+ * Checks if `T` is `never`
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * type Result = IsNever<never>
57
+ * // ^? type Result = true
58
+ * ```
59
+ */
60
+ export type IsNever<T> = [T] extends [never] ? true : false
61
+
62
+ /**
63
+ * Removes `readonly` from all properties of an object.
64
+ *
65
+ * @internal
66
+ */
67
+ export type Mutable<type extends object> = {
68
+ -readonly [key in keyof type]: type[key]
69
+ }
70
+
71
+ /**
72
+ * Evaluates boolean "or" condition for `T` properties.
73
+ *
74
+ * * @example
75
+ * ```ts
76
+ * type Result = Or<[false, true, false]>
77
+ * // ^? type Result = true
78
+ * ```
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * type Result = Or<[false, false, false]>
83
+ * // ^? type Result = false
84
+ * ```
85
+ *
86
+ * @internal
87
+ */
88
+ export type Or<T extends readonly unknown[]> = T extends readonly [infer Head, ...infer Tail]
89
+ ? Head extends true
90
+ ? true
91
+ : Or<Tail>
92
+ : false
93
+
94
+ /**
95
+ * Checks if `T` is `undefined`
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * type Result = IsUndefined<undefined>
100
+ * // ^? type Result = true
101
+ * ```
102
+ *
103
+ * @internal
104
+ */
105
+ export type IsUndefined<T> = [undefined] extends [T] ? true : false
106
+
107
+ /**
108
+ * Checks if type `T` is the `unknown` type.
109
+ *
110
+ * @internal
111
+ */
112
+ export type IsUnknown<T> = unknown extends T ? ([T] extends [null] ? false : true) : false
113
+
114
+ /** @internal */
115
+ export type MaybePromise<T> = T | Promise<T>
116
+
117
+ /**
118
+ * Makes attributes on the type T required if required is true.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * MaybeRequired<{ a: string, b?: number }, true>
123
+ * // { a: string, b: number }
124
+ *
125
+ * MaybeRequired<{ a: string, b?: number }, false>
126
+ * // { a: string, b?: number }
127
+ * ```
128
+ *
129
+ * @internal
130
+ */
131
+ export type MaybeRequired<T, required extends boolean> = required extends true
132
+ ? ExactRequired<T>
133
+ : T
134
+
135
+ /**
136
+ * Assigns the properties of U onto T.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * Assign<{ a: string, b: number }, { a: undefined, c: boolean }>
141
+ * // { a: undefined, b: number, c: boolean }
142
+ * ```
143
+ *
144
+ * @internal
145
+ */
146
+ export type Assign<T, U> = Assign_inner<T, U> & U
147
+
148
+ /** @internal */
149
+ export type Assign_inner<T, U> = {
150
+ [K in keyof T as K extends keyof U ? (U[K] extends void ? never : K) : K]: K extends keyof U
151
+ ? U[K]
152
+ : T[K]
153
+ }
154
+
155
+ /**
156
+ * Constructs a type by excluding `undefined` from `T`.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * NoUndefined<string | undefined>
161
+ * // string
162
+ * ```
163
+ *
164
+ * @internal
165
+ */
166
+ export type NoUndefined<T> = T extends undefined ? never : T
167
+
168
+ /**
169
+ * Strict version of built-in Omit type
170
+ *
171
+ * @internal
172
+ */
173
+ export type Omit<type, keys extends keyof type> = Pick<type, Exclude<keyof type, keys>>
174
+
175
+ /**
176
+ * Creates a type that is a partial of T, but with the required keys K.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * PartialBy<{ a: string, b: number }, 'a'>
181
+ * // { a?: string, b: number }
182
+ * ```
183
+ *
184
+ * @internal
185
+ */
186
+ export type PartialBy<T, K extends keyof T> = Omit<T, K> & ExactPartial<Pick<T, K>>
187
+
188
+ export type RecursiveArray<T> = T | readonly RecursiveArray<T>[]
189
+
190
+ /**
191
+ * Creates a type that is T with the required keys K.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * RequiredBy<{ a?: string, b: number }, 'a'>
196
+ * // { a: string, b: number }
197
+ * ```
198
+ *
199
+ * @internal
200
+ */
201
+ export type RequiredBy<T, K extends keyof T> = Omit<T, K> & ExactRequired<Pick<T, K>>
202
+
203
+ /**
204
+ * Returns truthy if `array` contains `value`.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * Some<[1, 2, 3], 2>
209
+ * // true
210
+ * ```
211
+ *
212
+ * @internal
213
+ */
214
+ export type Some<array extends readonly unknown[], value> = array extends readonly [
215
+ value,
216
+ ...unknown[],
217
+ ]
218
+ ? true
219
+ : array extends readonly [unknown, ...infer rest]
220
+ ? Some<rest, value>
221
+ : false
222
+
223
+ /**
224
+ * Prints custom error message
225
+ *
226
+ * @param messages - Error message
227
+ * @returns Custom error message
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * type Result = TypeErrorMessage<'Custom error message'>
232
+ * // ^? type Result = ['Error: Custom error message']
233
+ * ```
234
+ */
235
+ export type TypeErrorMessage<messages extends string | string[]> = messages extends string
236
+ ? [
237
+ // Surrounding with array to prevent `messages` from being widened to `string`
238
+ `Error: ${messages}`,
239
+ ]
240
+ : {
241
+ [key in keyof messages]: messages[key] extends infer message extends string
242
+ ? `Error: ${message}`
243
+ : never
244
+ }
245
+
246
+ /** @internal */
247
+ export type UnionToTuple<
248
+ union,
249
+ ///
250
+ last = LastInUnion<union>,
251
+ > = [union] extends [never] ? [] : [...UnionToTuple<Exclude<union, last>>, last]
252
+
253
+ /** @internal */
254
+ export type LastInUnion<U> =
255
+ UnionToIntersection<U extends unknown ? (x: U) => 0 : never> extends (x: infer l) => 0 ? l : never
256
+
257
+ /** @internal */
258
+ export type UnionToIntersection<union> = (
259
+ union extends unknown ? (arg: union) => 0 : never
260
+ ) extends (arg: infer i) => 0
261
+ ? i
262
+ : never
263
+
264
+ /** @internal */
265
+ export type IsUnion<
266
+ union,
267
+ ///
268
+ union2 = union,
269
+ > = union extends union2 ? ([union2] extends [union] ? false : true) : never
270
+
271
+ /** @internal */
272
+ export type MaybePartial<type, enabled extends boolean | undefined> = enabled extends true
273
+ ? Compute<ExactPartial<type>>
274
+ : type
275
+
276
+ export type ExactPartial<type> = {
277
+ [key in keyof type]?: type[key] | undefined
278
+ }
279
+
280
+ /** @internal */
281
+ export type ExactRequired<type> = {
282
+ [key in keyof type]-?: Exclude<type[key], undefined>
283
+ }
284
+
285
+ export type OneOf<
286
+ union extends object,
287
+ fallback extends object | undefined = undefined,
288
+ ///
289
+ keys extends KeyofUnion<union> = KeyofUnion<union>,
290
+ > = union extends infer item
291
+ ? Compute<
292
+ item & {
293
+ [key in Exclude<keys, keyof item>]?: fallback extends object
294
+ ? key extends keyof fallback
295
+ ? fallback[key]
296
+ : undefined
297
+ : undefined
298
+ }
299
+ >
300
+ : never
301
+
302
+ /** @internal */
303
+ export type KeyofUnion<type> = type extends type ? keyof type : never
304
+
305
+ /** @internal */
306
+ export type Undefined<type> = {
307
+ [key in keyof type]?: undefined
308
+ }
309
+
310
+ ///////////////////////////////////////////////////////////////////////////
311
+ // Loose types
312
+
313
+ /**
314
+ * Loose version of {@link Omit}
315
+ * @internal
316
+ */
317
+ export type LooseOmit<type, keys extends string> = Pick<type, Exclude<keyof type, keys>>
318
+
319
+ ///////////////////////////////////////////////////////////////////////////
320
+ // Union types
321
+
322
+ /** @internal */
323
+ export type UnionCompute<type> = type extends object ? Compute<type> : type
324
+
325
+ /** @internal */
326
+ export type UnionLooseOmit<type, keys extends string> = type extends any
327
+ ? LooseOmit<type, keys>
328
+ : never
329
+
330
+ /**
331
+ * Construct a type with the properties of union type T except for those in type K.
332
+ * @example
333
+ * ```ts
334
+ * type Result = UnionOmit<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
335
+ * // { b: number } | { b: undefined, c: number }
336
+ * ```
337
+ *
338
+ * @internal
339
+ */
340
+ export type UnionOmit<type, keys extends keyof type> = type extends any ? Omit<type, keys> : never
341
+
342
+ /**
343
+ * Construct a type with the properties of union type T except for those in type K.
344
+ * @example
345
+ * ```ts
346
+ * type Result = UnionOmit<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
347
+ * // { b: number } | { b: undefined, c: number }
348
+ * ```
349
+ *
350
+ * @internal
351
+ */
352
+ export type UnionPick<type, keys extends keyof type> = type extends any ? Pick<type, keys> : never
353
+
354
+ /**
355
+ * Creates a type that is a partial of T, but with the required keys K.
356
+ *
357
+ * @example
358
+ * ```ts
359
+ * PartialBy<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
360
+ * // { a?: string, b: number } | { a?: string, b: undefined, c: number }
361
+ * ```
362
+ *
363
+ * @internal
364
+ */
365
+ export type UnionPartialBy<T, K extends keyof T> = T extends any ? PartialBy<T, K> : never
366
+
367
+ /**
368
+ * Creates a type that is T with the required keys K.
369
+ *
370
+ * @example
371
+ * ```ts
372
+ * RequiredBy<{ a?: string, b: number } | { a?: string, c?: number }, 'a'>
373
+ * // { a: string, b: number } | { a: string, c?: number }
374
+ * ```
375
+ *
376
+ * @internal
377
+ */
378
+ export type UnionRequiredBy<T, K extends keyof T> = T extends any ? RequiredBy<T, K> : never
@@ -0,0 +1,153 @@
1
+ import { Hex, RpcRequest, RpcResponse } from 'ox'
2
+ import { KeyAuthorization, Transaction as core_Transaction, TxEnvelopeTempo } from 'ox/tempo'
3
+ import { type Client, BaseError } from 'viem'
4
+ import * as z from 'zod/mini'
5
+
6
+ export function resolveChainId(value: unknown) {
7
+ if (typeof value === 'number') return value
8
+ if (typeof value === 'bigint') return Number(value)
9
+ if (typeof value === 'string') {
10
+ if (Hex.validate(value)) return Hex.toNumber(value)
11
+ const n = Number(value)
12
+ if (Number.isFinite(n)) return n
13
+ }
14
+ return undefined
15
+ }
16
+
17
+ export function formatFillTransactionRequest(client: Client, value: Record<string, unknown>) {
18
+ const format = client.chain?.formatters?.transactionRequest?.format
19
+ if (!format) return value
20
+ return format({ ...value } as never, 'fillTransaction') as Record<string, unknown>
21
+ }
22
+
23
+ export function normalizeFillTransactionRequest(
24
+ tx: Record<string, unknown>,
25
+ ): Record<string, unknown> & { calls: unknown[] } {
26
+ const { to, data, value, ...rest } = tx
27
+ const keyAuthorization = normalizeKeyAuthorization(tx['keyAuthorization'])
28
+ const withKeyAuthorization = keyAuthorization ? { keyAuthorization } : {}
29
+ if (Array.isArray(tx['calls']) && tx['calls'].length > 0)
30
+ return {
31
+ ...tx,
32
+ ...withKeyAuthorization,
33
+ calls: tx['calls'].map((call) => ({
34
+ ...call,
35
+ value: normalizeFillValue(call.value),
36
+ })),
37
+ }
38
+ const call = {
39
+ ...(typeof to !== 'undefined' ? { to } : {}),
40
+ ...(typeof data !== 'undefined' ? { data } : {}),
41
+ ...(typeof value !== 'undefined' ? { value: normalizeFillValue(value) } : {}),
42
+ }
43
+ return { ...rest, ...withKeyAuthorization, calls: [call] }
44
+ }
45
+
46
+ /**
47
+ * Forwards `keyAuthorization` to the chain in RPC shape. Pass-through
48
+ * when already RPC; convert via `KeyAuthorization.toRpc` when internal.
49
+ */
50
+ function normalizeKeyAuthorization(value: unknown) {
51
+ if (!value || typeof value !== 'object') return undefined
52
+ const ka = value as Record<string, unknown>
53
+ const signature = ka['signature'] as Record<string, unknown> | undefined
54
+ if (!signature || typeof signature !== 'object') return undefined
55
+ const isInternal = typeof signature['signature'] === 'object' && signature['signature'] !== null
56
+ return isInternal ? KeyAuthorization.toRpc(value as never) : value
57
+ }
58
+
59
+ function normalizeFillValue(value: unknown) {
60
+ if (typeof value !== 'string' || !value.startsWith('0x')) return value
61
+ return BigInt(value === '0x' ? '0x0' : value)
62
+ }
63
+
64
+ /** Returns whether a raw transaction uses a Tempo sender or fee-payer wire prefix. */
65
+ export function isSerializedTempoTransaction(
66
+ value: unknown,
67
+ ): value is `0x76${string}` | `0x78${string}` {
68
+ if (typeof value !== 'string') return false
69
+ // `0x78` is Tempo's fee-payer handoff magic, not a separate EIP-2718 type.
70
+ return (
71
+ value.startsWith(TxEnvelopeTempo.serializedType) ||
72
+ value.startsWith(TxEnvelopeTempo.feePayerMagic)
73
+ )
74
+ }
75
+
76
+ export function normalizeTempoTransaction(value: Record<string, unknown> | undefined) {
77
+ if (!value) throw new Error('Expected `tx` in eth_fillTransaction response.')
78
+ return core_Transaction.fromRpc({ type: '0x76', ...value } as core_Transaction.Rpc)!
79
+ }
80
+
81
+ /** Returns a raw JSON-RPC error response object (not wrapped in a `Response`). */
82
+ export function rpcErrorJson(request: RpcRequest.RpcRequest, error: unknown) {
83
+ if (error instanceof RpcResponse.InvalidParamsError)
84
+ return RpcResponse.from({ error }, { request })
85
+
86
+ if (error instanceof RpcResponse.MethodNotSupportedError)
87
+ return RpcResponse.from({ error }, { request })
88
+
89
+ if ((error as { name?: string | undefined }).name === 'ZodError')
90
+ return RpcResponse.from(
91
+ {
92
+ error: new RpcResponse.InvalidParamsError({
93
+ message: (error as Error).message,
94
+ }),
95
+ },
96
+ { request },
97
+ )
98
+
99
+ const inner = resolveError(error)
100
+ const message = inner.message ?? (error as Error).message
101
+ const code = inner.code ?? -32603
102
+ const data = inner.data
103
+ return RpcResponse.from(
104
+ {
105
+ error: { code, message, ...(data ? { data } : {}) },
106
+ },
107
+ { request },
108
+ )
109
+ }
110
+
111
+ export function rpcError(request: RpcRequest.RpcRequest, error: unknown) {
112
+ return Response.json(rpcErrorJson(request, error))
113
+ }
114
+
115
+ export function rpcResult(request: RpcRequest.RpcRequest, result: unknown) {
116
+ return Response.json(RpcResponse.from({ result }, { request }))
117
+ }
118
+
119
+ export const parseParams = z.readonly(z.tuple([z.record(z.string(), z.unknown())]))
120
+
121
+ function resolveError(error: unknown): {
122
+ message?: string | undefined
123
+ code?: number | undefined
124
+ data?: unknown
125
+ } {
126
+ if (!error || typeof error !== 'object') return {}
127
+ // Walk the `cause` chain to the deepest object that looks like an upstream
128
+ // JSON-RPC error (`{ code, message }`). This unwraps viem's
129
+ // `RpcRequestError`, whose own `message` is the verbose
130
+ // "RPC Request failed.\nURL: …\nRequest body: …" formatting, and surfaces
131
+ // the raw upstream error instead.
132
+ let deepest:
133
+ | { message?: string | undefined; code?: number | undefined; data?: unknown }
134
+ | undefined
135
+ let current: unknown = error
136
+ const seen = new Set<unknown>()
137
+ while (current && typeof current === 'object' && !seen.has(current)) {
138
+ seen.add(current)
139
+ const e = current as Record<string, unknown>
140
+ if (typeof e['code'] === 'number' && typeof e['message'] === 'string')
141
+ deepest = { code: e['code'], message: e['message'], data: e['data'] }
142
+ current = e['cause']
143
+ }
144
+ if (deepest) return deepest
145
+ if (error instanceof BaseError) {
146
+ const inner = error.walk(
147
+ (e) => typeof (e as Record<string, unknown>)['code'] === 'number',
148
+ ) as Record<string, unknown> | null
149
+ if (inner && typeof inner['code'] === 'number' && typeof inner['message'] === 'string')
150
+ return { message: inner['message'], code: inner['code'], data: inner['data'] }
151
+ }
152
+ return {}
153
+ }