@hugomrdias/foxer 0.1.3 → 0.1.11

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 (343) hide show
  1. package/CHANGELOG.md +71 -17
  2. package/README.md +77 -10
  3. package/dist/{src/api/runner.d.ts → api/create-api.d.ts} +2 -2
  4. package/dist/api/create-api.d.ts.map +1 -0
  5. package/dist/{src/api/runner.js → api/create-api.js} +2 -2
  6. package/dist/api/create-api.js.map +1 -0
  7. package/dist/api/index.d.ts.map +1 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/api/server.d.ts.map +1 -0
  10. package/dist/api/server.js.map +1 -0
  11. package/dist/api/sql-middleware.d.ts.map +1 -0
  12. package/dist/{src/api → api}/sql-middleware.js +3 -3
  13. package/dist/api/sql-middleware.js.map +1 -0
  14. package/dist/api/sql.d.ts.map +1 -0
  15. package/dist/api/sql.js.map +1 -0
  16. package/dist/api/sse.d.ts.map +1 -0
  17. package/dist/api/sse.js.map +1 -0
  18. package/dist/bin/create.d.ts.map +1 -0
  19. package/dist/{src/bin → bin}/create.js +4 -4
  20. package/dist/bin/create.js.map +1 -0
  21. package/dist/bin/dev.d.ts.map +1 -0
  22. package/dist/{src/bin → bin}/dev.js +9 -11
  23. package/dist/bin/dev.js.map +1 -0
  24. package/dist/bin/flags.d.ts.map +1 -0
  25. package/dist/{src/bin → bin}/flags.js +1 -1
  26. package/dist/bin/flags.js.map +1 -0
  27. package/dist/{src/bin → bin}/index.d.ts.map +1 -1
  28. package/dist/{src/bin → bin}/index.js +4 -2
  29. package/dist/bin/index.js.map +1 -0
  30. package/dist/bin/serve.d.ts +3 -0
  31. package/dist/bin/serve.d.ts.map +1 -0
  32. package/dist/bin/serve.js +53 -0
  33. package/dist/bin/serve.js.map +1 -0
  34. package/dist/bin/start.d.ts +3 -0
  35. package/dist/bin/start.d.ts.map +1 -0
  36. package/dist/bin/start.js +72 -0
  37. package/dist/bin/start.js.map +1 -0
  38. package/dist/bin/utils.d.ts.map +1 -0
  39. package/dist/bin/utils.js +39 -0
  40. package/dist/bin/utils.js.map +1 -0
  41. package/dist/config/config.d.ts.map +1 -0
  42. package/dist/config/config.js.map +1 -0
  43. package/dist/{src/config → config}/env.d.ts +1 -1
  44. package/dist/config/env.d.ts.map +1 -0
  45. package/dist/{src/config → config}/env.js +4 -3
  46. package/dist/config/env.js.map +1 -0
  47. package/dist/contants.d.ts.map +1 -0
  48. package/dist/contants.js.map +1 -0
  49. package/dist/{src/db → db}/actions/blocks.d.ts +9 -6
  50. package/dist/db/actions/blocks.d.ts.map +1 -0
  51. package/dist/{src/db → db}/actions/blocks.js +40 -44
  52. package/dist/db/actions/blocks.js.map +1 -0
  53. package/dist/db/actions/index.d.ts.map +1 -0
  54. package/dist/db/actions/index.js.map +1 -0
  55. package/dist/db/actions/transactions.d.ts.map +1 -0
  56. package/dist/db/actions/transactions.js.map +1 -0
  57. package/dist/{src/db → db}/client.d.ts +3 -3
  58. package/dist/db/client.d.ts.map +1 -0
  59. package/dist/{src/db → db}/client.js +9 -3
  60. package/dist/db/client.js.map +1 -0
  61. package/dist/{src/db → db}/column-types.d.ts +2 -2
  62. package/dist/db/column-types.d.ts.map +1 -0
  63. package/dist/{src/db → db}/column-types.js +11 -3
  64. package/dist/db/column-types.js.map +1 -0
  65. package/dist/db/encode.d.ts.map +1 -0
  66. package/dist/db/encode.js.map +1 -0
  67. package/dist/db/migrate.d.ts.map +1 -0
  68. package/dist/db/migrate.js.map +1 -0
  69. package/dist/{src/db → db}/schema/blocks.d.ts +16 -16
  70. package/dist/{src/db → db}/schema/blocks.d.ts.map +1 -1
  71. package/dist/db/schema/blocks.js.map +1 -0
  72. package/dist/{src/db → db}/schema/index.d.ts +44 -44
  73. package/dist/{src/db → db}/schema/index.d.ts.map +1 -1
  74. package/dist/db/schema/index.js.map +1 -0
  75. package/dist/{src/db → db}/schema/transactions.d.ts +6 -6
  76. package/dist/{src/db → db}/schema/transactions.d.ts.map +1 -1
  77. package/dist/{src/db → db}/schema/transactions.js +3 -1
  78. package/dist/db/schema/transactions.js.map +1 -0
  79. package/dist/db/transaction.d.ts.map +1 -0
  80. package/dist/db/transaction.js.map +1 -0
  81. package/dist/{src/hooks → hooks}/registry.d.ts +7 -3
  82. package/dist/hooks/registry.d.ts.map +1 -0
  83. package/dist/{src/hooks → hooks}/registry.js +5 -0
  84. package/dist/hooks/registry.js.map +1 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/indexer/backfill.d.ts.map +1 -0
  88. package/dist/{src/indexer → indexer}/backfill.js +22 -19
  89. package/dist/indexer/backfill.js.map +1 -0
  90. package/dist/{src/indexer/runner.d.ts → indexer/create-indexer.d.ts} +2 -2
  91. package/dist/indexer/create-indexer.d.ts.map +1 -0
  92. package/dist/{src/indexer/runner.js → indexer/create-indexer.js} +2 -2
  93. package/dist/indexer/create-indexer.js.map +1 -0
  94. package/dist/indexer/live.d.ts.map +1 -0
  95. package/dist/{src/indexer → indexer}/live.js +3 -3
  96. package/dist/indexer/live.js.map +1 -0
  97. package/dist/{src/indexer → indexer}/process-block.d.ts +4 -4
  98. package/dist/indexer/process-block.d.ts.map +1 -0
  99. package/dist/{src/indexer → indexer}/process-block.js +6 -31
  100. package/dist/indexer/process-block.js.map +1 -0
  101. package/dist/indexer/queue-block.d.ts.map +1 -0
  102. package/dist/{src/indexer → indexer}/queue-block.js +19 -1
  103. package/dist/indexer/queue-block.js.map +1 -0
  104. package/dist/{src/indexer → indexer}/reorg.d.ts +2 -2
  105. package/dist/indexer/reorg.d.ts.map +1 -0
  106. package/dist/indexer/reorg.js.map +1 -0
  107. package/dist/rpc/client.d.ts.map +1 -0
  108. package/dist/rpc/client.js.map +1 -0
  109. package/dist/rpc/get-block.d.ts.map +1 -0
  110. package/dist/rpc/get-block.js.map +1 -0
  111. package/dist/rpc/get-logs.d.ts.map +1 -0
  112. package/dist/{src/rpc → rpc}/get-logs.js +2 -2
  113. package/dist/rpc/get-logs.js.map +1 -0
  114. package/dist/schema.d.ts.map +1 -0
  115. package/dist/schema.js.map +1 -0
  116. package/dist/{src/types.d.ts → types.d.ts} +2 -0
  117. package/dist/types.d.ts.map +1 -0
  118. package/dist/types.js.map +1 -0
  119. package/dist/utils/bloom.d.ts.map +1 -0
  120. package/dist/utils/bloom.js.map +1 -0
  121. package/dist/utils/build-conflict-columns.d.ts.map +1 -0
  122. package/dist/utils/build-conflict-columns.js.map +1 -0
  123. package/dist/utils/common.d.ts.map +1 -0
  124. package/dist/utils/common.js.map +1 -0
  125. package/dist/utils/cursor.d.ts.map +1 -0
  126. package/dist/utils/cursor.js.map +1 -0
  127. package/dist/utils/format.d.ts.map +1 -0
  128. package/dist/utils/format.js.map +1 -0
  129. package/dist/utils/hash.d.ts.map +1 -0
  130. package/dist/utils/hash.js.map +1 -0
  131. package/dist/utils/json.d.ts.map +1 -0
  132. package/dist/utils/json.js.map +1 -0
  133. package/dist/utils/logger.d.ts.map +1 -0
  134. package/dist/{src/utils → utils}/logger.js +0 -3
  135. package/dist/utils/logger.js.map +1 -0
  136. package/dist/utils/shutdown.d.ts.map +1 -0
  137. package/dist/{src/utils → utils}/shutdown.js +3 -2
  138. package/dist/utils/shutdown.js.map +1 -0
  139. package/dist/utils/timer.d.ts.map +1 -0
  140. package/dist/utils/timer.js.map +1 -0
  141. package/dist/utils/types.d.ts.map +1 -0
  142. package/dist/{src → utils}/types.js.map +1 -1
  143. package/package.json +45 -41
  144. package/src/api/{runner.ts → create-api.ts} +2 -1
  145. package/src/api/server.ts +1 -0
  146. package/src/api/sql-middleware.ts +4 -3
  147. package/src/api/sql.ts +2 -1
  148. package/src/bin/create.ts +7 -8
  149. package/src/bin/dev.ts +11 -13
  150. package/src/bin/flags.ts +1 -1
  151. package/src/bin/index.ts +6 -2
  152. package/src/bin/serve.ts +65 -0
  153. package/src/bin/start.ts +87 -0
  154. package/src/bin/utils.ts +22 -25
  155. package/src/config/config.ts +1 -0
  156. package/src/config/env.ts +5 -3
  157. package/src/db/actions/blocks.ts +53 -52
  158. package/src/db/actions/transactions.ts +1 -0
  159. package/src/db/client.ts +12 -5
  160. package/src/db/column-types.ts +17 -6
  161. package/src/db/encode.ts +1 -0
  162. package/src/db/migrate.ts +1 -0
  163. package/src/db/schema/blocks.ts +1 -0
  164. package/src/db/schema/transactions.ts +4 -1
  165. package/src/hooks/registry.ts +15 -3
  166. package/src/indexer/backfill.ts +31 -20
  167. package/src/indexer/{runner.ts → create-indexer.ts} +1 -1
  168. package/src/indexer/live.ts +4 -3
  169. package/src/indexer/process-block.ts +13 -41
  170. package/src/indexer/queue-block.ts +25 -1
  171. package/src/indexer/reorg.ts +3 -2
  172. package/src/rpc/client.ts +1 -0
  173. package/src/rpc/get-block.ts +1 -0
  174. package/src/rpc/get-logs.ts +3 -2
  175. package/src/types.ts +3 -0
  176. package/src/utils/logger.ts +1 -3
  177. package/src/utils/shutdown.ts +3 -2
  178. package/src/utils/types.ts +1 -0
  179. package/template/{package.json → package.json.tpl} +10 -8
  180. package/template/{pnpm-workspace.yaml → pnpm-workspace.yaml.tpl} +1 -1
  181. package/template/{tsconfig.json → tsconfig.json.tpl} +1 -2
  182. package/template/turbo.json.tpl +22 -0
  183. package/tsconfig.json +3 -1
  184. package/dist/src/api/index.d.ts.map +0 -1
  185. package/dist/src/api/index.js.map +0 -1
  186. package/dist/src/api/runner.d.ts.map +0 -1
  187. package/dist/src/api/runner.js.map +0 -1
  188. package/dist/src/api/server.d.ts.map +0 -1
  189. package/dist/src/api/server.js.map +0 -1
  190. package/dist/src/api/sql-middleware.d.ts.map +0 -1
  191. package/dist/src/api/sql-middleware.js.map +0 -1
  192. package/dist/src/api/sql.d.ts.map +0 -1
  193. package/dist/src/api/sql.js.map +0 -1
  194. package/dist/src/api/sse.d.ts.map +0 -1
  195. package/dist/src/api/sse.js.map +0 -1
  196. package/dist/src/bin/create.d.ts.map +0 -1
  197. package/dist/src/bin/create.js.map +0 -1
  198. package/dist/src/bin/dev.d.ts.map +0 -1
  199. package/dist/src/bin/dev.js.map +0 -1
  200. package/dist/src/bin/flags.d.ts.map +0 -1
  201. package/dist/src/bin/flags.js.map +0 -1
  202. package/dist/src/bin/index.js.map +0 -1
  203. package/dist/src/bin/utils.d.ts.map +0 -1
  204. package/dist/src/bin/utils.js +0 -52
  205. package/dist/src/bin/utils.js.map +0 -1
  206. package/dist/src/config/config.d.ts.map +0 -1
  207. package/dist/src/config/config.js.map +0 -1
  208. package/dist/src/config/env.d.ts.map +0 -1
  209. package/dist/src/config/env.js.map +0 -1
  210. package/dist/src/contants.d.ts.map +0 -1
  211. package/dist/src/contants.js.map +0 -1
  212. package/dist/src/db/actions/blocks.d.ts.map +0 -1
  213. package/dist/src/db/actions/blocks.js.map +0 -1
  214. package/dist/src/db/actions/index.d.ts.map +0 -1
  215. package/dist/src/db/actions/index.js.map +0 -1
  216. package/dist/src/db/actions/transactions.d.ts.map +0 -1
  217. package/dist/src/db/actions/transactions.js.map +0 -1
  218. package/dist/src/db/client.d.ts.map +0 -1
  219. package/dist/src/db/client.js.map +0 -1
  220. package/dist/src/db/column-types.d.ts.map +0 -1
  221. package/dist/src/db/column-types.js.map +0 -1
  222. package/dist/src/db/encode.d.ts.map +0 -1
  223. package/dist/src/db/encode.js.map +0 -1
  224. package/dist/src/db/migrate.d.ts.map +0 -1
  225. package/dist/src/db/migrate.js.map +0 -1
  226. package/dist/src/db/schema/blocks.js.map +0 -1
  227. package/dist/src/db/schema/index.js.map +0 -1
  228. package/dist/src/db/schema/transactions.js.map +0 -1
  229. package/dist/src/db/transaction.d.ts.map +0 -1
  230. package/dist/src/db/transaction.js.map +0 -1
  231. package/dist/src/hooks/registry.d.ts.map +0 -1
  232. package/dist/src/hooks/registry.js.map +0 -1
  233. package/dist/src/index.d.ts.map +0 -1
  234. package/dist/src/index.js.map +0 -1
  235. package/dist/src/indexer/backfill.d.ts.map +0 -1
  236. package/dist/src/indexer/backfill.js.map +0 -1
  237. package/dist/src/indexer/live.d.ts.map +0 -1
  238. package/dist/src/indexer/live.js.map +0 -1
  239. package/dist/src/indexer/process-block.d.ts.map +0 -1
  240. package/dist/src/indexer/process-block.js.map +0 -1
  241. package/dist/src/indexer/queue-block.d.ts.map +0 -1
  242. package/dist/src/indexer/queue-block.js.map +0 -1
  243. package/dist/src/indexer/reorg.d.ts.map +0 -1
  244. package/dist/src/indexer/reorg.js.map +0 -1
  245. package/dist/src/indexer/runner.d.ts.map +0 -1
  246. package/dist/src/indexer/runner.js.map +0 -1
  247. package/dist/src/rpc/client.d.ts.map +0 -1
  248. package/dist/src/rpc/client.js.map +0 -1
  249. package/dist/src/rpc/get-block.d.ts.map +0 -1
  250. package/dist/src/rpc/get-block.js.map +0 -1
  251. package/dist/src/rpc/get-logs.d.ts.map +0 -1
  252. package/dist/src/rpc/get-logs.js.map +0 -1
  253. package/dist/src/schema.d.ts.map +0 -1
  254. package/dist/src/schema.js.map +0 -1
  255. package/dist/src/types.d.ts.map +0 -1
  256. package/dist/src/utils/bloom.d.ts.map +0 -1
  257. package/dist/src/utils/bloom.js.map +0 -1
  258. package/dist/src/utils/build-conflict-columns.d.ts.map +0 -1
  259. package/dist/src/utils/build-conflict-columns.js.map +0 -1
  260. package/dist/src/utils/common.d.ts.map +0 -1
  261. package/dist/src/utils/common.js.map +0 -1
  262. package/dist/src/utils/cursor.d.ts.map +0 -1
  263. package/dist/src/utils/cursor.js.map +0 -1
  264. package/dist/src/utils/format.d.ts.map +0 -1
  265. package/dist/src/utils/format.js.map +0 -1
  266. package/dist/src/utils/hash.d.ts.map +0 -1
  267. package/dist/src/utils/hash.js.map +0 -1
  268. package/dist/src/utils/json.d.ts.map +0 -1
  269. package/dist/src/utils/json.js.map +0 -1
  270. package/dist/src/utils/logger.d.ts.map +0 -1
  271. package/dist/src/utils/logger.js.map +0 -1
  272. package/dist/src/utils/shutdown.d.ts.map +0 -1
  273. package/dist/src/utils/shutdown.js.map +0 -1
  274. package/dist/src/utils/timer.d.ts.map +0 -1
  275. package/dist/src/utils/timer.js.map +0 -1
  276. package/dist/src/utils/types.d.ts.map +0 -1
  277. package/dist/src/utils/types.js.map +0 -1
  278. package/dist/tsconfig.tsbuildinfo +0 -1
  279. package/template/biome.template.json +0 -50
  280. /package/dist/{src/api → api}/index.d.ts +0 -0
  281. /package/dist/{src/api → api}/index.js +0 -0
  282. /package/dist/{src/api → api}/server.d.ts +0 -0
  283. /package/dist/{src/api → api}/server.js +0 -0
  284. /package/dist/{src/api → api}/sql-middleware.d.ts +0 -0
  285. /package/dist/{src/api → api}/sql.d.ts +0 -0
  286. /package/dist/{src/api → api}/sql.js +0 -0
  287. /package/dist/{src/api → api}/sse.d.ts +0 -0
  288. /package/dist/{src/api → api}/sse.js +0 -0
  289. /package/dist/{src/bin → bin}/create.d.ts +0 -0
  290. /package/dist/{src/bin → bin}/dev.d.ts +0 -0
  291. /package/dist/{src/bin → bin}/flags.d.ts +0 -0
  292. /package/dist/{src/bin → bin}/index.d.ts +0 -0
  293. /package/dist/{src/bin → bin}/utils.d.ts +0 -0
  294. /package/dist/{src/config → config}/config.d.ts +0 -0
  295. /package/dist/{src/config → config}/config.js +0 -0
  296. /package/dist/{src/contants.d.ts → contants.d.ts} +0 -0
  297. /package/dist/{src/contants.js → contants.js} +0 -0
  298. /package/dist/{src/db → db}/actions/index.d.ts +0 -0
  299. /package/dist/{src/db → db}/actions/index.js +0 -0
  300. /package/dist/{src/db → db}/actions/transactions.d.ts +0 -0
  301. /package/dist/{src/db → db}/actions/transactions.js +0 -0
  302. /package/dist/{src/db → db}/encode.d.ts +0 -0
  303. /package/dist/{src/db → db}/encode.js +0 -0
  304. /package/dist/{src/db → db}/migrate.d.ts +0 -0
  305. /package/dist/{src/db → db}/migrate.js +0 -0
  306. /package/dist/{src/db → db}/schema/blocks.js +0 -0
  307. /package/dist/{src/db → db}/schema/index.js +0 -0
  308. /package/dist/{src/db → db}/transaction.d.ts +0 -0
  309. /package/dist/{src/db → db}/transaction.js +0 -0
  310. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  311. /package/dist/{src/index.js → index.js} +0 -0
  312. /package/dist/{src/indexer → indexer}/backfill.d.ts +0 -0
  313. /package/dist/{src/indexer → indexer}/live.d.ts +0 -0
  314. /package/dist/{src/indexer → indexer}/queue-block.d.ts +0 -0
  315. /package/dist/{src/indexer → indexer}/reorg.js +0 -0
  316. /package/dist/{src/rpc → rpc}/client.d.ts +0 -0
  317. /package/dist/{src/rpc → rpc}/client.js +0 -0
  318. /package/dist/{src/rpc → rpc}/get-block.d.ts +0 -0
  319. /package/dist/{src/rpc → rpc}/get-block.js +0 -0
  320. /package/dist/{src/rpc → rpc}/get-logs.d.ts +0 -0
  321. /package/dist/{src/schema.d.ts → schema.d.ts} +0 -0
  322. /package/dist/{src/schema.js → schema.js} +0 -0
  323. /package/dist/{src/types.js → types.js} +0 -0
  324. /package/dist/{src/utils → utils}/bloom.d.ts +0 -0
  325. /package/dist/{src/utils → utils}/bloom.js +0 -0
  326. /package/dist/{src/utils → utils}/build-conflict-columns.d.ts +0 -0
  327. /package/dist/{src/utils → utils}/build-conflict-columns.js +0 -0
  328. /package/dist/{src/utils → utils}/common.d.ts +0 -0
  329. /package/dist/{src/utils → utils}/common.js +0 -0
  330. /package/dist/{src/utils → utils}/cursor.d.ts +0 -0
  331. /package/dist/{src/utils → utils}/cursor.js +0 -0
  332. /package/dist/{src/utils → utils}/format.d.ts +0 -0
  333. /package/dist/{src/utils → utils}/format.js +0 -0
  334. /package/dist/{src/utils → utils}/hash.d.ts +0 -0
  335. /package/dist/{src/utils → utils}/hash.js +0 -0
  336. /package/dist/{src/utils → utils}/json.d.ts +0 -0
  337. /package/dist/{src/utils → utils}/json.js +0 -0
  338. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  339. /package/dist/{src/utils → utils}/shutdown.d.ts +0 -0
  340. /package/dist/{src/utils → utils}/timer.d.ts +0 -0
  341. /package/dist/{src/utils → utils}/timer.js +0 -0
  342. /package/dist/{src/utils → utils}/types.d.ts +0 -0
  343. /package/dist/{src/utils → utils}/types.js +0 -0
@@ -0,0 +1,72 @@
1
+ import path from 'node:path';
2
+ import { command } from 'cleye';
3
+ import { gracefulExit } from 'exit-hook';
4
+ import { createApi } from "../api/create-api.js";
5
+ import { createEnv } from "../config/env.js";
6
+ import { createDatabase } from "../db/client.js";
7
+ import { runMigrations } from "../db/migrate.js";
8
+ import * as InternalSchema from "../db/schema/index.js";
9
+ import { createRegistry } from "../hooks/registry.js";
10
+ import { createIndexer } from "../indexer/create-indexer.js";
11
+ import { createLogger } from "../utils/logger.js";
12
+ import { createExit } from "../utils/shutdown.js";
13
+ import { globalFlags } from "./flags.js";
14
+ import { loadConfig } from "./utils.js";
15
+ export const start = command({
16
+ name: 'start',
17
+ flags: { ...globalFlags },
18
+ help: {
19
+ description: 'Start the production server',
20
+ },
21
+ }, async (argv) => {
22
+ const logger = createLogger({
23
+ level: argv.flags.logLevel,
24
+ mode: 'json',
25
+ });
26
+ if (process.env.DATABASE_URL == null) {
27
+ logger.error('DATABASE_URL environment variable is not set');
28
+ gracefulExit(1);
29
+ }
30
+ try {
31
+ const env = createEnv(logger);
32
+ const config = await loadConfig(logger, argv.flags.root, argv.flags.config);
33
+ const dbContext = createDatabase({
34
+ env,
35
+ schema: { ...config.schema, ...InternalSchema.schema },
36
+ relations: { ...config.relations, ...InternalSchema.relations },
37
+ });
38
+ await runMigrations({
39
+ dbContext,
40
+ folder: path.resolve(argv.flags.root, config.drizzleFolder),
41
+ logger,
42
+ });
43
+ const registry = createRegistry({ config });
44
+ const [api, indexer] = await Promise.all([
45
+ createApi({
46
+ db: dbContext.db,
47
+ config,
48
+ logger,
49
+ port: argv.flags.port,
50
+ }),
51
+ createIndexer({
52
+ logger,
53
+ db: dbContext.db,
54
+ registry,
55
+ config,
56
+ }),
57
+ ]);
58
+ createExit({
59
+ logger,
60
+ stop: async () => {
61
+ indexer.stop();
62
+ api.stop();
63
+ await dbContext.stop();
64
+ },
65
+ });
66
+ }
67
+ catch (error) {
68
+ logger.error({ error }, 'start server failed');
69
+ gracefulExit(1);
70
+ }
71
+ });
72
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/bin/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bin/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAI7C,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,2BAqClB"}
@@ -0,0 +1,39 @@
1
+ import path from 'node:path';
2
+ import { loadConfig as unconfigLoadConfig, } from 'unconfig';
3
+ const CLI_NAME = 'foxer';
4
+ export async function loadConfig(logger, root, filePath) {
5
+ let configFile;
6
+ try {
7
+ if (filePath) {
8
+ const configPath = path.resolve(root, filePath);
9
+ configFile = await unconfigLoadConfig({
10
+ sources: [
11
+ {
12
+ files: configPath,
13
+ },
14
+ ],
15
+ });
16
+ }
17
+ else {
18
+ configFile = await unconfigLoadConfig({
19
+ sources: [
20
+ {
21
+ files: `${CLI_NAME}.config`,
22
+ },
23
+ ],
24
+ });
25
+ }
26
+ }
27
+ catch (error) {
28
+ logger.error({ error }, 'config evaluation failed');
29
+ // ignore
30
+ }
31
+ if (!configFile) {
32
+ logger.error({
33
+ msg: 'Config file not found',
34
+ });
35
+ process.exit(1);
36
+ }
37
+ return configFile.config.config;
38
+ }
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAEL,UAAU,IAAI,kBAAkB,GACjC,MAAM,UAAU,CAAA;AAKjB,MAAM,QAAQ,GAAG,OAAO,CAAA;AAExB,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,IAAY,EACZ,QAAiB;IAEjB,IAAI,UAAoE,CAAA;IAExE,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAE/C,UAAU,GAAG,MAAM,kBAAkB,CAAC;gBACpC,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,UAAU;qBAClB;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,kBAAkB,CAAC;gBACpC,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,GAAG,QAAQ,SAAS;qBAC5B;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,0BAA0B,CAAC,CAAA;QACnD,SAAS;IACX,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,uBAAuB;SAC7B,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,MAAwB,CAAA;AACnD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ declare const envSchema: z.ZodObject<{
16
16
  json: "json";
17
17
  }>>;
18
18
  }, z.core.$strip>;
19
- export declare function createEnv(logger: Logger): {
19
+ export declare function createEnv(_logger: Logger): {
20
20
  LOG_LEVEL: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
21
21
  LOG_MODE: "pretty" | "json";
22
22
  DATABASE_URL?: string | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAO7C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAC3C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;iBAMb,CAAA;AAEF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM;;;;EAUxC"}
@@ -2,6 +2,7 @@ import dotenv from 'dotenv';
2
2
  import { z } from 'zod';
3
3
  dotenv.config({
4
4
  path: '.env.local',
5
+ quiet: true,
5
6
  });
6
7
  const envSchema = z.object({
7
8
  DATABASE_URL: z.url().optional(),
@@ -10,12 +11,12 @@ const envSchema = z.object({
10
11
  .default('info'),
11
12
  LOG_MODE: z.enum(['pretty', 'json']).default('pretty'),
12
13
  });
13
- export function createEnv(logger) {
14
+ export function createEnv(_logger) {
14
15
  const parsed = envSchema.safeParse(process.env);
15
16
  if (!parsed.success) {
16
- throw new Error(`Failed to parse environment variables: \n ${z.flattenError(parsed.error)}`);
17
+ throw new Error(`Failed to parse environment variables: \n ${z.prettifyError(parsed.error)}`);
17
18
  }
18
- logger.debug({ env: parsed.data }, 'env parsed');
19
+ // logger.debug({ env: parsed.data }, 'env parsed')
19
20
  return parsed.data;
20
21
  }
21
22
  //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAA;AAGF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1D,OAAO,CAAC,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CACvD,CAAC,CAAA;AAEF,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7E,CAAA;IACH,CAAC;IACD,mDAAmD;IACnD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contants.d.ts","sourceRoot":"","sources":["../src/contants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,sBAAsB,CAAA;AACnD,eAAO,MAAM,YAAY,UAA6B,CAAA;AACtD,eAAO,MAAM,gBAAgB,QAAQ,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contants.js","sourceRoot":"","sources":["../src/contants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAA;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAA"}
@@ -1,8 +1,7 @@
1
1
  /** biome-ignore-all lint/style/noNonNullAssertion: its ok */
2
2
  import { type PgAsyncTransaction, type PgQueryResultHKT } from 'drizzle-orm/pg-core';
3
- import type { PublicClient } from 'viem';
4
- import type { FilteredContracts } from '../../config/config.ts';
5
- import type { EncodedBlockWithTransactions } from '../../types.ts';
3
+ import type { Hash, PublicClient } from 'viem';
4
+ import type { BlocksMap, EncodedBlock, EncodedTransaction, TransactionsMap } from '../../types.ts';
6
5
  import type { Logger } from '../../utils/logger.ts';
7
6
  import type { Database } from '../client.ts';
8
7
  import { type relations, schema } from '../schema/index.ts';
@@ -20,7 +19,8 @@ export declare function deleteBlocksFrom(db: Database, fromBlock: bigint): Promi
20
19
  */
21
20
  export declare function cacheBlockAndTransactions(args: {
22
21
  db: Database<typeof schema, typeof relations>;
23
- block: EncodedBlockWithTransactions;
22
+ blocks: EncodedBlock[];
23
+ transactions: EncodedTransaction[];
24
24
  logger: Logger;
25
25
  }): Promise<void>;
26
26
  /**
@@ -33,12 +33,15 @@ export declare function cacheBlockAndTransactions(args: {
33
33
  * @param args.client - The client instance
34
34
  * @returns The blocks and their transactions
35
35
  */
36
- export declare function getBlocksInRange(logger: Logger, db: Database<typeof schema, typeof relations>, blockNumbers: bigint[], client: PublicClient, contracts: FilteredContracts): Promise<Map<bigint, EncodedBlockWithTransactions>>;
36
+ export declare function getBlocksInRange(logger: Logger, db: Database<typeof schema, typeof relations>, blockNumbers: bigint[], client: PublicClient, logsTxs: Hash[]): Promise<{
37
+ blocks: BlocksMap;
38
+ transactions: TransactionsMap;
39
+ }>;
37
40
  /**
38
41
  * Inserts blocks in chunks to avoid query parameter limit.
39
42
  */
40
43
  export declare function insertBlocksInChunks(args: {
41
44
  db: PgAsyncTransaction<PgQueryResultHKT, typeof schema>;
42
- blocks: EncodedBlockWithTransactions[];
45
+ blocks: EncodedBlock[];
43
46
  }): Promise<void>;
44
47
  //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAG7D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAI9C,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3D;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAef;AAmBD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,EAAE,EAAE,QAAQ,CAAC,OAAO,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;IAC7C,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAahB;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,QAAQ,CAAC,OAAO,MAAM,EAAE,OAAO,SAAS,CAAC,EAC7C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,IAAI,EAAE,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,eAAe,CAAA;CAAE,CAAC,CA6E/D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,MAAM,CAAC,CAAA;IACvD,MAAM,EAAE,YAAY,EAAE,CAAA;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB"}
@@ -1,5 +1,5 @@
1
1
  /** biome-ignore-all lint/style/noNonNullAssertion: its ok */
2
- import { gte } from 'drizzle-orm';
2
+ import { and, gte, inArray } from 'drizzle-orm';
3
3
  import { getTableConfig, } from 'drizzle-orm/pg-core';
4
4
  import { MAX_QUERY_PARAMS } from "../../contants.js";
5
5
  import { safeGetBlock } from "../../rpc/get-block.js";
@@ -42,15 +42,15 @@ function getTablesWithBlockNumberColumn(fullSchema) {
42
42
  * @returns The cached block and transactions
43
43
  */
44
44
  export async function cacheBlockAndTransactions(args) {
45
- const { db, block } = args;
45
+ const { db, blocks, transactions } = args;
46
46
  await db.transaction(async (tx) => {
47
47
  await insertBlocksInChunks({
48
48
  db: tx,
49
- blocks: [block],
49
+ blocks,
50
50
  });
51
51
  await insertTransactionsInChunks({
52
52
  db: tx,
53
- transactions: block.transactions,
53
+ transactions,
54
54
  });
55
55
  });
56
56
  }
@@ -64,7 +64,7 @@ export async function cacheBlockAndTransactions(args) {
64
64
  * @param args.client - The client instance
65
65
  * @returns The blocks and their transactions
66
66
  */
67
- export async function getBlocksInRange(logger, db, blockNumbers, client, contracts) {
67
+ export async function getBlocksInRange(logger, db, blockNumbers, client, logsTxs) {
68
68
  const endClock = startClock();
69
69
  const firstBlockNumber = blockNumbers[0];
70
70
  const lastBlockNumber = blockNumbers[blockNumbers.length - 1];
@@ -73,32 +73,27 @@ export async function getBlocksInRange(logger, db, blockNumbers, client, contrac
73
73
  // lastBlockNumber,
74
74
  // contractAddresses: contracts.addresses,
75
75
  // })
76
- const r = await db.query.blocks.findMany({
77
- with: {
78
- transactions: {
79
- where: {
80
- AND: [
81
- { blockNumber: { gte: firstBlockNumber } },
82
- { blockNumber: { lte: lastBlockNumber } },
83
- {
84
- to: {
85
- in: contracts.addresses,
86
- },
87
- },
88
- ],
89
- },
76
+ const [blocks, txs] = await Promise.all([
77
+ db.query.blocks.findMany({
78
+ where: {
79
+ AND: [
80
+ { number: { gte: firstBlockNumber } },
81
+ { number: { lte: lastBlockNumber } },
82
+ ],
90
83
  },
91
- },
92
- where: {
93
- AND: [
94
- { number: { gte: firstBlockNumber } },
95
- { number: { lte: lastBlockNumber } },
96
- ],
97
- },
98
- });
84
+ }),
85
+ db
86
+ .select()
87
+ .from(schema.transactions)
88
+ .where(and(inArray(schema.transactions.hash, logsTxs))),
89
+ ]);
90
+ const transactionByHash = new Map();
91
+ for (const tx of txs) {
92
+ transactionByHash.set(tx.hash, tx);
93
+ }
99
94
  const blocksByNumber = new Map();
100
95
  const missing = new Set(blockNumbers);
101
- for (const block of r) {
96
+ for (const block of blocks) {
102
97
  blocksByNumber.set(block.number, block);
103
98
  missing.delete(block.number);
104
99
  }
@@ -107,29 +102,30 @@ export async function getBlocksInRange(logger, db, blockNumbers, client, contrac
107
102
  const newTransactions = [];
108
103
  await Promise.all(missingBlockNumbers.map(async (blockNumber) => {
109
104
  const block = await safeGetBlock({ client, blockNumber, db });
110
- const transactions = block.transactions;
111
105
  blocksByNumber.set(blockNumber, block);
112
- newBlocks.push(block);
106
+ const { transactions, ..._block } = block;
107
+ newBlocks.push(_block);
113
108
  if (transactions.length > 0) {
114
109
  newTransactions.push(...transactions);
115
110
  }
111
+ for (const tx of transactions) {
112
+ transactionByHash.set(tx.hash, tx);
113
+ }
116
114
  }));
117
- await db.transaction(async (tx) => {
118
- await insertBlocksInChunks({
119
- db: tx,
120
- blocks: newBlocks,
121
- });
122
- await insertTransactionsInChunks({
123
- db: tx,
124
- transactions: newTransactions,
125
- });
115
+ await cacheBlockAndTransactions({
116
+ db,
117
+ blocks: newBlocks,
118
+ transactions: newTransactions,
119
+ logger,
126
120
  });
127
- logger.info({
128
- blocks: blocksByNumber.size,
129
- missing: missingBlockNumbers.length,
121
+ logger.trace({
122
+ blocks: blocks.length,
123
+ txs: txs.length,
124
+ newBlocks: newBlocks.length,
125
+ newTxs: newTransactions.length,
130
126
  duration: endClock(),
131
- }, 'get blocks');
132
- return blocksByNumber;
127
+ }, 'get blocks and txs');
128
+ return { blocks: blocksByNumber, transactions: transactionByHash };
133
129
  }
134
130
  /**
135
131
  * Inserts blocks in chunks to avoid query parameter limit.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../src/db/actions/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,MAAM,CAAC,CAAA;IACvD,YAAY,EAAE,kBAAkB,EAAE,CAAA;CACnC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/db/actions/transactions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAGhD;IACC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IACjC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACvD,CAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;QAElD,MAAM,EAAE;aACL,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;aAC3B,MAAM,CAAC,KAAK,CAAC;aACb,mBAAmB,CAAC;YACnB,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;SACnC,CAAC,CAAA;IACN,CAAC;AACH,CAAC"}
@@ -20,14 +20,14 @@ export type DatabaseContext<TSchema extends Record<string, unknown> = Record<str
20
20
  $prepared: ReturnType<typeof generatePrepared>;
21
21
  };
22
22
  driver: 'postgres';
23
- close: () => Promise<void>;
23
+ stop: () => Promise<void>;
24
24
  } | {
25
25
  db: PgliteDatabase<TSchema, TRelations> & {
26
26
  $client: PGlite;
27
27
  $prepared: ReturnType<typeof generatePrepared>;
28
28
  };
29
29
  driver: 'pglite';
30
- close: () => Promise<void>;
30
+ stop: () => Promise<void>;
31
31
  };
32
32
  /**
33
33
  * Creates a typed Drizzle database context for either Postgres or PGlite.
@@ -304,7 +304,6 @@ declare function generatePrepared(db: Omit<Database<typeof schema, typeof relati
304
304
  extraData: `0x${string}`;
305
305
  transactions: {
306
306
  input: `0x${string}`;
307
- s: `0x${string}`;
308
307
  hash: `0x${string}`;
309
308
  nonce: number;
310
309
  blockNumber: bigint;
@@ -314,6 +313,7 @@ declare function generatePrepared(db: Omit<Database<typeof schema, typeof relati
314
313
  to: `0x${string}` | null;
315
314
  value: bigint;
316
315
  r: `0x${string}`;
316
+ s: `0x${string}`;
317
317
  v: bigint;
318
318
  type: "legacy" | "eip1559" | "eip2930" | "eip4844" | "eip7702";
319
319
  gas: bigint;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,15 @@ export function createDatabase({ env, config, schema, relations, }) {
20
20
  url = config.url;
21
21
  options = config.options;
22
22
  }
23
+ // Postgres
23
24
  if (driver === 'postgres' && url) {
24
25
  const pool = new Pool({
25
- ...options,
26
+ application_name: 'foxer',
27
+ connectionTimeoutMillis: 5_000,
28
+ idleTimeoutMillis: 30_000,
29
+ max: 10,
26
30
  connectionString: url,
31
+ ...options,
27
32
  });
28
33
  const db = drizzleNodePostgres({
29
34
  client: pool,
@@ -36,11 +41,12 @@ export function createDatabase({ env, config, schema, relations, }) {
36
41
  return {
37
42
  db,
38
43
  driver: 'postgres',
39
- close: async () => {
44
+ stop: async () => {
40
45
  await pool.end();
41
46
  },
42
47
  };
43
48
  }
49
+ // PGlite
44
50
  const client = new PGlite(config?.driver === 'pglite' && config.directory
45
51
  ? config.directory
46
52
  : '.pglite');
@@ -55,7 +61,7 @@ export function createDatabase({ env, config, schema, relations, }) {
55
61
  return {
56
62
  db,
57
63
  driver: 'pglite',
58
- close: async () => {
64
+ stop: async () => {
59
65
  await client.close();
60
66
  },
61
67
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
@@ -121,12 +121,12 @@ export declare const bytea: {
121
121
  <TConfig extends Record<string, any>>(fieldConfig?: TConfig | undefined): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
122
122
  dataType: "custom";
123
123
  data: `0x${string}`;
124
- driverParam: Buffer<ArrayBufferLike>;
124
+ driverParam: Uint8Array<ArrayBufferLike>;
125
125
  }>;
126
126
  (dbName: string, fieldConfig?: unknown): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
127
127
  dataType: "custom";
128
128
  data: `0x${string}`;
129
- driverParam: Buffer<ArrayBufferLike>;
129
+ driverParam: Uint8Array<ArrayBufferLike>;
130
130
  }>;
131
131
  };
132
132
  //# sourceMappingURL=column-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;CAOpB,CAAA;AAEF,eAAO,MAAM,GAAG;;gBAGK,MAAM,GAAG,SAAS;;;;;;;gBAAlB,MAAM,GAAG,SAAS;;;;;;CAWrC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;gBAGI,MAAM,GAAG,SAAS;;;;;;;gBAAlB,MAAM,GAAG,SAAS;;;;;;CAWrC,CAAA;AAEF,eAAO,MAAM,OAAO;;gBAGC,MAAM,GAAG,SAAS;;;;;;;gBAAlB,MAAM,GAAG,SAAS;;;;;;CAWrC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;CAOjB,CAAA;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;CAAY,CAAA;AAChC,eAAO,MAAM,MAAM;;;;;;;;;;;CAAY,CAAA;AAE/B,eAAO,MAAM,KAAK;;;;;;;;;;;CAOhB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;CAsBhB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { customType } from 'drizzle-orm/pg-core';
2
+ import { hex as hexCodec } from 'iso-base/rfc4648';
2
3
  import { stringify } from 'viem';
3
4
  export const numeric78 = customType({
4
5
  dataType() {
@@ -78,9 +79,16 @@ export const bytea = customType({
78
79
  return Buffer.from(value.slice(2), 'hex');
79
80
  },
80
81
  fromDriver(value) {
81
- const hex = value.toString('hex');
82
- const _value = hex.startsWith('\\x') ? hex.slice(2) : hex;
83
- return `0x${_value}`;
82
+ if (typeof value === 'string') {
83
+ return `0x${value.slice(2)}`;
84
+ }
85
+ if (value instanceof Buffer) {
86
+ return `0x${value.toString('hex')}`;
87
+ }
88
+ if (value instanceof Uint8Array) {
89
+ return `0x${hexCodec.encode(value)}`;
90
+ }
91
+ throw new Error('Invalid value');
84
92
  },
85
93
  });
86
94
  //# sourceMappingURL=column-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/db/encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,4BAA4B,EAC5B,kBAAkB,EACnB,MAAM,UAAU,CAAA;AAEjB,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,GAAG,kBAAkB,CAqB1E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAsB3D;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,UAAU,GAChB,4BAA4B,CAK9B;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;CACX,GAAG,4BAA4B,CA0B/B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/db/encode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE5D;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAClC,SAAS,EACT,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,eAAe,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBA2BtE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,UAAU,EAAE,MAAM,EAAE,QAsGrB;AAeD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,oBAS9C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"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"}