ponder 0.9.4 → 0.9.5-debug.1

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 (466) hide show
  1. package/CHANGELOG.md +2201 -0
  2. package/dist/esm/bin/commands/codegen.js +37 -0
  3. package/dist/esm/bin/commands/codegen.js.map +1 -0
  4. package/dist/esm/bin/commands/dev.js +242 -0
  5. package/dist/esm/bin/commands/dev.js.map +1 -0
  6. package/dist/esm/bin/commands/list.js +103 -0
  7. package/dist/esm/bin/commands/list.js.map +1 -0
  8. package/dist/esm/bin/commands/serve.js +123 -0
  9. package/dist/esm/bin/commands/serve.js.map +1 -0
  10. package/dist/esm/bin/commands/start.js +136 -0
  11. package/dist/esm/bin/commands/start.js.map +1 -0
  12. package/dist/esm/bin/ponder.js +118 -0
  13. package/dist/esm/bin/ponder.js.map +1 -0
  14. package/dist/esm/bin/utils/codegen.js +26 -0
  15. package/dist/esm/bin/utils/codegen.js.map +1 -0
  16. package/dist/esm/bin/utils/exit.js +69 -0
  17. package/dist/esm/bin/utils/exit.js.map +1 -0
  18. package/dist/esm/bin/utils/run.js +247 -0
  19. package/dist/esm/bin/utils/run.js.map +1 -0
  20. package/dist/esm/bin/utils/runServer.js +8 -0
  21. package/dist/esm/bin/utils/runServer.js.map +1 -0
  22. package/dist/esm/build/configAndIndexingFunctions.js +654 -0
  23. package/dist/esm/build/configAndIndexingFunctions.js.map +1 -0
  24. package/dist/esm/build/factory.js +43 -0
  25. package/dist/esm/build/factory.js.map +1 -0
  26. package/dist/esm/build/index.js +431 -0
  27. package/dist/esm/build/index.js.map +1 -0
  28. package/dist/esm/build/plugin.js +43 -0
  29. package/dist/esm/build/plugin.js.map +1 -0
  30. package/dist/esm/build/pre.js +112 -0
  31. package/dist/esm/build/pre.js.map +1 -0
  32. package/dist/esm/build/schema.js +89 -0
  33. package/dist/esm/build/schema.js.map +1 -0
  34. package/dist/esm/build/stacktrace.js +137 -0
  35. package/dist/esm/build/stacktrace.js.map +1 -0
  36. package/dist/esm/client/index.js +124 -0
  37. package/dist/esm/client/index.js.map +1 -0
  38. package/dist/esm/client/validate.js +1151 -0
  39. package/dist/esm/client/validate.js.map +1 -0
  40. package/dist/esm/config/address.js +2 -0
  41. package/dist/esm/config/address.js.map +1 -0
  42. package/dist/esm/config/eventFilter.js +2 -0
  43. package/dist/esm/config/eventFilter.js.map +1 -0
  44. package/dist/esm/config/index.js +2 -0
  45. package/dist/esm/config/index.js.map +1 -0
  46. package/dist/esm/config/networks.js +120 -0
  47. package/dist/esm/config/networks.js.map +1 -0
  48. package/dist/esm/config/utilityTypes.js +2 -0
  49. package/dist/esm/config/utilityTypes.js.map +1 -0
  50. package/dist/esm/database/index.js +914 -0
  51. package/dist/esm/database/index.js.map +1 -0
  52. package/dist/esm/drizzle/bigint.js +36 -0
  53. package/dist/esm/drizzle/bigint.js.map +1 -0
  54. package/dist/esm/drizzle/hex.js +38 -0
  55. package/dist/esm/drizzle/hex.js.map +1 -0
  56. package/dist/esm/drizzle/index.js +43 -0
  57. package/dist/esm/drizzle/index.js.map +1 -0
  58. package/dist/esm/drizzle/kit/index.js +658 -0
  59. package/dist/esm/drizzle/kit/index.js.map +1 -0
  60. package/dist/esm/drizzle/onchain.js +102 -0
  61. package/dist/esm/drizzle/onchain.js.map +1 -0
  62. package/dist/esm/graphql/index.js +704 -0
  63. package/dist/esm/graphql/index.js.map +1 -0
  64. package/dist/esm/graphql/json.js +42 -0
  65. package/dist/esm/graphql/json.js.map +1 -0
  66. package/dist/esm/graphql/middleware.js +80 -0
  67. package/dist/esm/graphql/middleware.js.map +1 -0
  68. package/dist/esm/index.js +9 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/indexing/addStackTrace.js +54 -0
  71. package/dist/esm/indexing/addStackTrace.js.map +1 -0
  72. package/dist/esm/indexing/index.js +10 -0
  73. package/dist/esm/indexing/index.js.map +1 -0
  74. package/dist/esm/indexing/ponderActions.js +60 -0
  75. package/dist/esm/indexing/ponderActions.js.map +1 -0
  76. package/dist/esm/indexing/service.js +312 -0
  77. package/dist/esm/indexing/service.js.map +1 -0
  78. package/dist/esm/indexing-store/historical.js +591 -0
  79. package/dist/esm/indexing-store/historical.js.map +1 -0
  80. package/dist/esm/indexing-store/index.js +19 -0
  81. package/dist/esm/indexing-store/index.js.map +1 -0
  82. package/dist/esm/indexing-store/metadata.js +46 -0
  83. package/dist/esm/indexing-store/metadata.js.map +1 -0
  84. package/dist/esm/indexing-store/realtime.js +295 -0
  85. package/dist/esm/indexing-store/realtime.js.map +1 -0
  86. package/dist/esm/internal/common.js +2 -0
  87. package/dist/esm/internal/common.js.map +1 -0
  88. package/dist/esm/internal/errors.js +175 -0
  89. package/dist/esm/internal/errors.js.map +1 -0
  90. package/dist/esm/internal/logger.js +96 -0
  91. package/dist/esm/internal/logger.js.map +1 -0
  92. package/dist/esm/internal/metrics.js +569 -0
  93. package/dist/esm/internal/metrics.js.map +1 -0
  94. package/dist/esm/internal/options.js +69 -0
  95. package/dist/esm/internal/options.js.map +1 -0
  96. package/dist/esm/internal/shutdown.js +18 -0
  97. package/dist/esm/internal/shutdown.js.map +1 -0
  98. package/dist/esm/internal/telemetry.js +199 -0
  99. package/dist/esm/internal/telemetry.js.map +1 -0
  100. package/dist/esm/internal/types.js +2 -0
  101. package/dist/esm/internal/types.js.map +1 -0
  102. package/dist/esm/server/error.js +55 -0
  103. package/dist/esm/server/error.js.map +1 -0
  104. package/dist/esm/server/index.js +107 -0
  105. package/dist/esm/server/index.js.map +1 -0
  106. package/dist/esm/sync/abi.js +67 -0
  107. package/dist/esm/sync/abi.js.map +1 -0
  108. package/dist/esm/sync/events.js +607 -0
  109. package/dist/esm/sync/events.js.map +1 -0
  110. package/dist/esm/sync/filter.js +356 -0
  111. package/dist/esm/sync/filter.js.map +1 -0
  112. package/dist/esm/sync/fragments.js +300 -0
  113. package/dist/esm/sync/fragments.js.map +1 -0
  114. package/dist/esm/sync/index.js +1001 -0
  115. package/dist/esm/sync/index.js.map +1 -0
  116. package/dist/esm/sync/transport.js +94 -0
  117. package/dist/esm/sync/transport.js.map +1 -0
  118. package/dist/esm/sync-historical/index.js +590 -0
  119. package/dist/esm/sync-historical/index.js.map +1 -0
  120. package/dist/esm/sync-realtime/bloom.js +75 -0
  121. package/dist/esm/sync-realtime/bloom.js.map +1 -0
  122. package/dist/esm/sync-realtime/index.js +794 -0
  123. package/dist/esm/sync-realtime/index.js.map +1 -0
  124. package/dist/esm/sync-store/encoding.js +157 -0
  125. package/dist/esm/sync-store/encoding.js.map +1 -0
  126. package/dist/esm/sync-store/index.js +727 -0
  127. package/dist/esm/sync-store/index.js.map +1 -0
  128. package/dist/esm/sync-store/migrations.js +1186 -0
  129. package/dist/esm/sync-store/migrations.js.map +1 -0
  130. package/dist/esm/types/db.js +2 -0
  131. package/dist/esm/types/db.js.map +1 -0
  132. package/dist/esm/types/eth.js +2 -0
  133. package/dist/esm/types/eth.js.map +1 -0
  134. package/dist/esm/types/sync.js +2 -0
  135. package/dist/esm/types/sync.js.map +1 -0
  136. package/dist/esm/types/utils.js +2 -0
  137. package/dist/esm/types/utils.js.map +1 -0
  138. package/dist/esm/types/virtual.js +2 -0
  139. package/dist/esm/types/virtual.js.map +1 -0
  140. package/dist/esm/ui/ProgressBar.js +11 -0
  141. package/dist/esm/ui/ProgressBar.js.map +1 -0
  142. package/dist/esm/ui/Table.js +50 -0
  143. package/dist/esm/ui/Table.js.map +1 -0
  144. package/dist/esm/ui/app.js +113 -0
  145. package/dist/esm/ui/app.js.map +1 -0
  146. package/dist/esm/ui/graphiql.html.js +59 -0
  147. package/dist/esm/ui/graphiql.html.js.map +1 -0
  148. package/dist/esm/ui/index.js +21 -0
  149. package/dist/esm/ui/index.js.map +1 -0
  150. package/dist/esm/utils/bigint.js +37 -0
  151. package/dist/esm/utils/bigint.js.map +1 -0
  152. package/dist/esm/utils/chains.js +3 -0
  153. package/dist/esm/utils/chains.js.map +1 -0
  154. package/dist/esm/utils/checkpoint.js +114 -0
  155. package/dist/esm/utils/checkpoint.js.map +1 -0
  156. package/dist/esm/utils/chunk.js +8 -0
  157. package/dist/esm/utils/chunk.js.map +1 -0
  158. package/dist/esm/utils/date.js +27 -0
  159. package/dist/esm/utils/date.js.map +1 -0
  160. package/dist/esm/utils/debug.js +2 -0
  161. package/dist/esm/utils/debug.js.map +1 -0
  162. package/dist/esm/utils/dedupe.js +33 -0
  163. package/dist/esm/utils/dedupe.js.map +1 -0
  164. package/dist/esm/utils/duplicates.js +19 -0
  165. package/dist/esm/utils/duplicates.js.map +1 -0
  166. package/dist/esm/utils/estimate.js +6 -0
  167. package/dist/esm/utils/estimate.js.map +1 -0
  168. package/dist/esm/utils/extend.js +28 -0
  169. package/dist/esm/utils/extend.js.map +1 -0
  170. package/dist/esm/utils/format.js +20 -0
  171. package/dist/esm/utils/format.js.map +1 -0
  172. package/dist/esm/utils/generators.js +77 -0
  173. package/dist/esm/utils/generators.js.map +1 -0
  174. package/dist/esm/utils/hash.js +11 -0
  175. package/dist/esm/utils/hash.js.map +1 -0
  176. package/dist/esm/utils/interval.js +171 -0
  177. package/dist/esm/utils/interval.js.map +1 -0
  178. package/dist/esm/utils/lowercase.js +7 -0
  179. package/dist/esm/utils/lowercase.js.map +1 -0
  180. package/dist/esm/utils/mutex.js +25 -0
  181. package/dist/esm/utils/mutex.js.map +1 -0
  182. package/dist/esm/utils/never.js +4 -0
  183. package/dist/esm/utils/never.js.map +1 -0
  184. package/dist/esm/utils/offset.js +73 -0
  185. package/dist/esm/utils/offset.js.map +1 -0
  186. package/dist/esm/utils/order.js +18 -0
  187. package/dist/esm/utils/order.js.map +1 -0
  188. package/dist/esm/utils/partition.js +37 -0
  189. package/dist/esm/utils/partition.js.map +1 -0
  190. package/dist/esm/utils/pg.js +126 -0
  191. package/dist/esm/utils/pg.js.map +1 -0
  192. package/dist/esm/utils/pglite.js +80 -0
  193. package/dist/esm/utils/pglite.js.map +1 -0
  194. package/dist/esm/utils/port.js +30 -0
  195. package/dist/esm/utils/port.js.map +1 -0
  196. package/dist/esm/utils/print.js +23 -0
  197. package/dist/esm/utils/print.js.map +1 -0
  198. package/dist/esm/utils/promiseWithResolvers.js +13 -0
  199. package/dist/esm/utils/promiseWithResolvers.js.map +1 -0
  200. package/dist/esm/utils/queue.js +145 -0
  201. package/dist/esm/utils/queue.js.map +1 -0
  202. package/dist/esm/utils/range.js +8 -0
  203. package/dist/esm/utils/range.js.map +1 -0
  204. package/dist/esm/utils/requestQueue.js +127 -0
  205. package/dist/esm/utils/requestQueue.js.map +1 -0
  206. package/dist/esm/utils/result.js +10 -0
  207. package/dist/esm/utils/result.js.map +1 -0
  208. package/dist/esm/utils/rpc.js +202 -0
  209. package/dist/esm/utils/rpc.js.map +1 -0
  210. package/dist/esm/utils/serialize.js +23 -0
  211. package/dist/esm/utils/serialize.js.map +1 -0
  212. package/dist/esm/utils/timer.js +17 -0
  213. package/dist/esm/utils/timer.js.map +1 -0
  214. package/dist/esm/utils/wait.js +8 -0
  215. package/dist/esm/utils/wait.js.map +1 -0
  216. package/dist/esm/utils/zipper.js +67 -0
  217. package/dist/esm/utils/zipper.js.map +1 -0
  218. package/dist/types/bin/commands/codegen.d.ts +5 -0
  219. package/dist/types/bin/commands/codegen.d.ts.map +1 -0
  220. package/dist/types/bin/commands/dev.d.ts +5 -0
  221. package/dist/types/bin/commands/dev.d.ts.map +1 -0
  222. package/dist/types/bin/commands/list.d.ts +5 -0
  223. package/dist/types/bin/commands/list.d.ts.map +1 -0
  224. package/dist/types/bin/commands/serve.d.ts +5 -0
  225. package/dist/types/bin/commands/serve.d.ts.map +1 -0
  226. package/dist/types/bin/commands/start.d.ts +5 -0
  227. package/dist/types/bin/commands/start.d.ts.map +1 -0
  228. package/dist/{bin → types/bin}/ponder.d.ts +5 -6
  229. package/dist/types/bin/ponder.d.ts.map +1 -0
  230. package/dist/types/bin/utils/codegen.d.ts +6 -0
  231. package/dist/types/bin/utils/codegen.d.ts.map +1 -0
  232. package/dist/types/bin/utils/exit.d.ts +9 -0
  233. package/dist/types/bin/utils/exit.d.ts.map +1 -0
  234. package/dist/types/bin/utils/run.d.ts +14 -0
  235. package/dist/types/bin/utils/run.d.ts.map +1 -0
  236. package/dist/types/bin/utils/runServer.d.ts +12 -0
  237. package/dist/types/bin/utils/runServer.d.ts.map +1 -0
  238. package/dist/types/build/configAndIndexingFunctions.d.ts +37 -0
  239. package/dist/types/build/configAndIndexingFunctions.d.ts.map +1 -0
  240. package/dist/types/build/factory.d.ts +10 -0
  241. package/dist/types/build/factory.d.ts.map +1 -0
  242. package/dist/types/build/index.d.ts +70 -0
  243. package/dist/types/build/index.d.ts.map +1 -0
  244. package/dist/types/build/plugin.d.ts +4 -0
  245. package/dist/types/build/plugin.d.ts.map +1 -0
  246. package/dist/types/build/pre.d.ts +35 -0
  247. package/dist/types/build/pre.d.ts.map +1 -0
  248. package/dist/types/build/schema.d.ts +18 -0
  249. package/dist/types/build/schema.d.ts.map +1 -0
  250. package/dist/types/build/stacktrace.d.ts +13 -0
  251. package/dist/types/build/stacktrace.d.ts.map +1 -0
  252. package/dist/types/client/index.d.ts +27 -0
  253. package/dist/types/client/index.d.ts.map +1 -0
  254. package/dist/types/client/validate.d.ts +2 -0
  255. package/dist/types/client/validate.d.ts.map +1 -0
  256. package/dist/types/config/address.d.ts +14 -0
  257. package/dist/types/config/address.d.ts.map +1 -0
  258. package/dist/types/config/eventFilter.d.ts +18 -0
  259. package/dist/types/config/eventFilter.d.ts.map +1 -0
  260. package/dist/types/config/index.d.ts +143 -0
  261. package/dist/types/config/index.d.ts.map +1 -0
  262. package/dist/types/config/networks.d.ts +30 -0
  263. package/dist/types/config/networks.d.ts.map +1 -0
  264. package/dist/types/config/utilityTypes.d.ts +43 -0
  265. package/dist/types/config/utilityTypes.d.ts.map +1 -0
  266. package/dist/types/database/index.d.ts +91 -0
  267. package/dist/types/database/index.d.ts.map +1 -0
  268. package/dist/types/drizzle/bigint.d.ts +25 -0
  269. package/dist/types/drizzle/bigint.d.ts.map +1 -0
  270. package/dist/types/drizzle/hex.d.ts +25 -0
  271. package/dist/types/drizzle/hex.d.ts.map +1 -0
  272. package/dist/types/drizzle/index.d.ts +14 -0
  273. package/dist/types/drizzle/index.d.ts.map +1 -0
  274. package/dist/types/drizzle/kit/index.d.ts +49 -0
  275. package/dist/types/drizzle/kit/index.d.ts.map +1 -0
  276. package/dist/{drizzle → types/drizzle}/onchain.d.ts +49 -96
  277. package/dist/types/drizzle/onchain.d.ts.map +1 -0
  278. package/dist/types/graphql/index.d.ts +14 -0
  279. package/dist/types/graphql/index.d.ts.map +1 -0
  280. package/dist/types/graphql/json.d.ts +3 -0
  281. package/dist/types/graphql/json.d.ts.map +1 -0
  282. package/dist/types/graphql/middleware.d.ts +29 -0
  283. package/dist/types/graphql/middleware.d.ts.map +1 -0
  284. package/dist/types/index.d.ts +18 -0
  285. package/dist/types/index.d.ts.map +1 -0
  286. package/dist/types/indexing/addStackTrace.d.ts +3 -0
  287. package/dist/types/indexing/addStackTrace.d.ts.map +1 -0
  288. package/dist/types/indexing/index.d.ts +575 -0
  289. package/dist/types/indexing/index.d.ts.map +1 -0
  290. package/dist/types/indexing/ponderActions.d.ts +47 -0
  291. package/dist/types/indexing/ponderActions.d.ts.map +1 -0
  292. package/dist/types/indexing/service.d.ts +73 -0
  293. package/dist/types/indexing/service.d.ts.map +1 -0
  294. package/dist/types/indexing-store/historical.d.ts +19 -0
  295. package/dist/types/indexing-store/historical.d.ts.map +1 -0
  296. package/dist/types/indexing-store/index.d.ts +10 -0
  297. package/dist/types/indexing-store/index.d.ts.map +1 -0
  298. package/dist/types/indexing-store/metadata.d.ts +10 -0
  299. package/dist/types/indexing-store/metadata.d.ts.map +1 -0
  300. package/dist/types/indexing-store/realtime.d.ts +10 -0
  301. package/dist/types/indexing-store/realtime.d.ts.map +1 -0
  302. package/dist/types/internal/common.d.ts +13 -0
  303. package/dist/types/internal/common.d.ts.map +1 -0
  304. package/dist/types/internal/errors.d.ts +55 -0
  305. package/dist/types/internal/errors.d.ts.map +1 -0
  306. package/dist/types/internal/logger.d.ts +26 -0
  307. package/dist/types/internal/logger.d.ts.map +1 -0
  308. package/dist/types/internal/metrics.d.ts +77 -0
  309. package/dist/types/internal/metrics.d.ts.map +1 -0
  310. package/dist/types/internal/options.d.ts +59 -0
  311. package/dist/types/internal/options.d.ts.map +1 -0
  312. package/dist/types/internal/shutdown.d.ts +8 -0
  313. package/dist/types/internal/shutdown.d.ts.map +1 -0
  314. package/dist/types/internal/telemetry.d.ts +43 -0
  315. package/dist/types/internal/telemetry.d.ts.map +1 -0
  316. package/dist/types/internal/types.d.ts +328 -0
  317. package/dist/types/internal/types.d.ts.map +1 -0
  318. package/dist/types/server/error.d.ts +5 -0
  319. package/dist/types/server/error.d.ts.map +1 -0
  320. package/dist/types/server/index.d.ts +13 -0
  321. package/dist/types/server/index.d.ts.map +1 -0
  322. package/dist/types/sync/abi.d.ts +54 -0
  323. package/dist/types/sync/abi.d.ts.map +1 -0
  324. package/dist/types/sync/events.d.ts +24 -0
  325. package/dist/types/sync/events.d.ts.map +1 -0
  326. package/dist/types/sync/filter.d.ts +71 -0
  327. package/dist/types/sync/filter.d.ts.map +1 -0
  328. package/dist/types/sync/fragments.d.ts +21 -0
  329. package/dist/types/sync/fragments.d.ts.map +1 -0
  330. package/dist/types/sync/index.d.ts +112 -0
  331. package/dist/types/sync/index.d.ts.map +1 -0
  332. package/dist/types/sync/transport.d.ts +8 -0
  333. package/dist/types/sync/transport.d.ts.map +1 -0
  334. package/dist/types/sync-historical/index.d.ts +28 -0
  335. package/dist/types/sync-historical/index.d.ts.map +1 -0
  336. package/dist/types/sync-realtime/bloom.d.ts +19 -0
  337. package/dist/types/sync-realtime/bloom.d.ts.map +1 -0
  338. package/dist/types/sync-realtime/index.d.ts +48 -0
  339. package/dist/types/sync-realtime/index.d.ts.map +1 -0
  340. package/dist/types/sync-store/encoding.d.ts +151 -0
  341. package/dist/types/sync-store/encoding.d.ts.map +1 -0
  342. package/dist/types/sync-store/index.d.ts +104 -0
  343. package/dist/types/sync-store/index.d.ts.map +1 -0
  344. package/dist/types/sync-store/migrations.d.ts +13 -0
  345. package/dist/types/sync-store/migrations.d.ts.map +1 -0
  346. package/dist/types/types/db.d.ts +213 -0
  347. package/dist/types/types/db.d.ts.map +1 -0
  348. package/dist/types/types/eth.d.ts +196 -0
  349. package/dist/types/types/eth.d.ts.map +1 -0
  350. package/dist/types/types/sync.d.ts +15 -0
  351. package/dist/types/types/sync.d.ts.map +1 -0
  352. package/dist/types/types/utils.d.ts +22 -0
  353. package/dist/types/types/utils.d.ts.map +1 -0
  354. package/dist/types/types/virtual.d.ts +95 -0
  355. package/dist/types/types/virtual.d.ts.map +1 -0
  356. package/dist/types/ui/ProgressBar.d.ts +7 -0
  357. package/dist/types/ui/ProgressBar.d.ts.map +1 -0
  358. package/dist/types/ui/Table.d.ts +24 -0
  359. package/dist/types/ui/Table.d.ts.map +1 -0
  360. package/dist/types/ui/app.d.ts +14 -0
  361. package/dist/types/ui/app.d.ts.map +1 -0
  362. package/dist/types/ui/graphiql.html.d.ts +2 -0
  363. package/dist/types/ui/graphiql.html.d.ts.map +1 -0
  364. package/dist/types/ui/index.d.ts +5 -0
  365. package/dist/types/ui/index.d.ts.map +1 -0
  366. package/dist/types/utils/bigint.d.ts +15 -0
  367. package/dist/types/utils/bigint.d.ts.map +1 -0
  368. package/dist/types/utils/chains.d.ts +3 -0
  369. package/dist/types/utils/chains.d.ts.map +1 -0
  370. package/dist/types/utils/checkpoint.d.ts +40 -0
  371. package/dist/types/utils/checkpoint.d.ts.map +1 -0
  372. package/dist/types/utils/chunk.d.ts +2 -0
  373. package/dist/types/utils/chunk.d.ts.map +1 -0
  374. package/dist/types/utils/date.d.ts +7 -0
  375. package/dist/types/utils/date.d.ts.map +1 -0
  376. package/dist/types/utils/debug.d.ts +105 -0
  377. package/dist/types/utils/debug.d.ts.map +1 -0
  378. package/dist/types/utils/dedupe.d.ts +20 -0
  379. package/dist/types/utils/dedupe.d.ts.map +1 -0
  380. package/dist/types/utils/duplicates.d.ts +7 -0
  381. package/dist/types/utils/duplicates.d.ts.map +1 -0
  382. package/dist/types/utils/estimate.d.ts +11 -0
  383. package/dist/types/utils/estimate.d.ts.map +1 -0
  384. package/dist/types/utils/extend.d.ts +13 -0
  385. package/dist/types/utils/extend.d.ts.map +1 -0
  386. package/dist/types/utils/format.d.ts +3 -0
  387. package/dist/types/utils/format.d.ts.map +1 -0
  388. package/dist/types/utils/generators.d.ts +23 -0
  389. package/dist/types/utils/generators.d.ts.map +1 -0
  390. package/dist/types/utils/hash.d.ts +11 -0
  391. package/dist/types/utils/hash.d.ts.map +1 -0
  392. package/dist/types/utils/interval.d.ts +53 -0
  393. package/dist/types/utils/interval.d.ts.map +1 -0
  394. package/dist/types/utils/lowercase.d.ts +5 -0
  395. package/dist/types/utils/lowercase.d.ts.map +1 -0
  396. package/dist/types/utils/mutex.d.ts +8 -0
  397. package/dist/types/utils/mutex.d.ts.map +1 -0
  398. package/dist/types/utils/never.d.ts +2 -0
  399. package/dist/types/utils/never.d.ts.map +1 -0
  400. package/dist/types/utils/offset.d.ts +3 -0
  401. package/dist/types/utils/offset.d.ts.map +1 -0
  402. package/dist/types/utils/order.d.ts +2 -0
  403. package/dist/types/utils/order.d.ts.map +1 -0
  404. package/dist/types/utils/partition.d.ts +22 -0
  405. package/dist/types/utils/partition.d.ts.map +1 -0
  406. package/dist/types/utils/pg.d.ts +5 -0
  407. package/dist/types/utils/pg.d.ts.map +1 -0
  408. package/dist/types/utils/pglite.d.ts +25 -0
  409. package/dist/types/utils/pglite.d.ts.map +1 -0
  410. package/dist/types/utils/port.d.ts +5 -0
  411. package/dist/types/utils/port.d.ts.map +1 -0
  412. package/dist/types/utils/print.d.ts +2 -0
  413. package/dist/types/utils/print.d.ts.map +1 -0
  414. package/dist/types/utils/promiseWithResolvers.d.ts +10 -0
  415. package/dist/types/utils/promiseWithResolvers.d.ts.map +1 -0
  416. package/dist/types/utils/queue.d.ts +33 -0
  417. package/dist/types/utils/queue.d.ts.map +1 -0
  418. package/dist/types/utils/range.d.ts +8 -0
  419. package/dist/types/utils/range.d.ts.map +1 -0
  420. package/dist/types/utils/requestQueue.d.ts +21 -0
  421. package/dist/types/utils/requestQueue.d.ts.map +1 -0
  422. package/dist/types/utils/result.d.ts +17 -0
  423. package/dist/types/utils/result.d.ts.map +1 -0
  424. package/dist/types/utils/rpc.d.ts +57 -0
  425. package/dist/types/utils/rpc.d.ts.map +1 -0
  426. package/dist/types/utils/serialize.d.ts +19 -0
  427. package/dist/types/utils/serialize.d.ts.map +1 -0
  428. package/dist/types/utils/timer.d.ts +11 -0
  429. package/dist/types/utils/timer.d.ts.map +1 -0
  430. package/dist/types/utils/wait.d.ts +6 -0
  431. package/dist/types/utils/wait.d.ts.map +1 -0
  432. package/dist/types/utils/zipper.d.ts +36 -0
  433. package/dist/types/utils/zipper.d.ts.map +1 -0
  434. package/package.json +17 -17
  435. package/src/bin/commands/dev.ts +1 -1
  436. package/src/bin/ponder.ts +1 -1
  437. package/src/bin/utils/run.ts +7 -18
  438. package/src/build/configAndIndexingFunctions.ts +1 -1
  439. package/src/build/factory.ts +1 -1
  440. package/src/client/index.ts +1 -1
  441. package/src/graphql/index.ts +1 -1
  442. package/src/indexing-store/historical.ts +1 -1
  443. package/src/indexing-store/realtime.ts +1 -1
  444. package/src/internal/telemetry.ts +1 -1
  445. package/src/sync/fragments.ts +1 -1
  446. package/src/sync/index.ts +60 -20
  447. package/src/sync-historical/index.ts +26 -26
  448. package/src/sync-realtime/index.ts +1 -1
  449. package/src/utils/dedupe.ts +40 -0
  450. package/src/utils/generators.ts +1 -1
  451. package/src/utils/mutex.ts +1 -1
  452. package/src/utils/promiseWithResolvers.ts +20 -0
  453. package/src/utils/queue.ts +250 -0
  454. package/src/utils/requestQueue.ts +1 -1
  455. package/dist/bin/ponder.js +0 -12904
  456. package/dist/bin/ponder.js.map +0 -1
  457. package/dist/chunk-K2TLRLX3.js +0 -163
  458. package/dist/chunk-K2TLRLX3.js.map +0 -1
  459. package/dist/chunk-LHCA5XFV.js +0 -257
  460. package/dist/chunk-LHCA5XFV.js.map +0 -1
  461. package/dist/drizzle/onchain.js +0 -19
  462. package/dist/drizzle/onchain.js.map +0 -1
  463. package/dist/index.d.ts +0 -819
  464. package/dist/index.js +0 -2217
  465. package/dist/index.js.map +0 -1
  466. package/dist/utils-ceNucOJb.d.ts +0 -14
@@ -0,0 +1,21 @@
1
+ import type { Common } from '../internal/common.js';
2
+ import type { Network } from '../internal/types.js';
3
+ import { type Queue } from './queue.js';
4
+ import { type EIP1193Parameters, type PublicRpcSchema } from "viem";
5
+ import type { DebugRpcSchema } from "./debug.js";
6
+ type Schema = [...PublicRpcSchema, ...DebugRpcSchema];
7
+ type RequestReturnType<method extends EIP1193Parameters<Schema>["method"]> = Extract<Schema[number], {
8
+ Method: method;
9
+ }>["ReturnType"];
10
+ export type RequestQueue = Omit<Queue<RequestReturnType<EIP1193Parameters<Schema>["method"]>, EIP1193Parameters<Schema>>, "add"> & {
11
+ request: <TParameters extends EIP1193Parameters<Schema>>(parameters: TParameters) => Promise<RequestReturnType<TParameters["method"]>>;
12
+ };
13
+ /**
14
+ * Creates a queue built to manage rpc requests.
15
+ */
16
+ export declare const createRequestQueue: ({ common, network, }: {
17
+ common: Common;
18
+ network: Network;
19
+ }) => RequestQueue;
20
+ export {};
21
+ //# sourceMappingURL=requestQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestQueue.d.ts","sourceRoot":"","sources":["../../../src/utils/requestQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,kBAAkB,CAAC;AAK3D,OAAO,EACL,KAAK,iBAAiB,EAMtB,KAAK,eAAe,EAGrB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,KAAK,MAAM,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC;AAEtD,KAAK,iBAAiB,CAAC,MAAM,SAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IACvE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,YAAY,CAAC,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,KAAK,CACH,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EACtD,iBAAiB,CAAC,MAAM,CAAC,CAC1B,EACD,KAAK,CACN,GAAG;IACF,OAAO,EAAE,CAAC,WAAW,SAAS,iBAAiB,CAAC,MAAM,CAAC,EACrD,UAAU,EAAE,WAAW,KACpB,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,kBAAkB;YAGlB,MAAM;aAAW,OAAO;MAAK,YA8GzC,CAAC"}
@@ -0,0 +1,17 @@
1
+ export type Result<T> = ([T] extends [never] ? {
2
+ status: "success";
3
+ } : {
4
+ status: "success";
5
+ result: T;
6
+ }) | {
7
+ status: "error";
8
+ error: Error;
9
+ };
10
+ export type MergeResults<T extends readonly Result<any>[]> = T extends readonly [
11
+ infer Head extends Result<unknown>,
12
+ ...infer Tail extends Result<unknown>[]
13
+ ] ? [Extract<Head, {
14
+ status: "success";
15
+ }>["result"], ...MergeResults<Tail>] : [];
16
+ export declare const mergeResults: <const T extends readonly Result<unknown>[]>(results: T) => Result<MergeResults<T>>;
17
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,IAChB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAChB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,GACrC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,MAAM,CAAC,GAAG,CAAC,EAAE,IACvD,CAAC,SAAS,SAAS;IACjB,MAAM,IAAI,SAAS,MAAM,CAAC,OAAO,CAAC;IAClC,GAAG,MAAM,IAAI,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE;CACxC,GACG,CAAC,OAAO,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,GACvE,EAAE,CAAC;AAET,eAAO,MAAM,YAAY,qFAWxB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { SyncBlock, SyncLog, SyncTrace, SyncTransactionReceipt } from '../types/sync.js';
2
+ import type { RequestQueue } from './requestQueue.js';
3
+ import { type Address, type Hash, type Hex, type LogTopic } from "viem";
4
+ /**
5
+ * Helper function for "eth_getBlockByNumber" request.
6
+ */
7
+ export declare const _eth_getBlockByNumber: (requestQueue: RequestQueue, { blockNumber, blockTag, }: {
8
+ blockNumber: Hex | number;
9
+ blockTag?: undefined;
10
+ } | {
11
+ blockNumber?: undefined;
12
+ blockTag: "latest";
13
+ }) => Promise<SyncBlock>;
14
+ /**
15
+ * Helper function for "eth_getBlockByNumber" request.
16
+ */
17
+ export declare const _eth_getBlockByHash: (requestQueue: RequestQueue, { hash }: {
18
+ hash: Hex;
19
+ }) => Promise<SyncBlock>;
20
+ /**
21
+ * Helper function for "eth_getLogs" rpc request.
22
+ * Handles different error types and retries the request if applicable.
23
+ */
24
+ export declare const _eth_getLogs: (requestQueue: RequestQueue, params: {
25
+ address?: Address | Address[];
26
+ topics?: LogTopic[];
27
+ } & ({
28
+ fromBlock: Hex | number;
29
+ toBlock: Hex | number;
30
+ } | {
31
+ blockHash: Hash;
32
+ })) => Promise<SyncLog[]>;
33
+ /**
34
+ * Helper function for "eth_getTransactionReceipt" request.
35
+ */
36
+ export declare const _eth_getTransactionReceipt: (requestQueue: RequestQueue, { hash }: {
37
+ hash: Hex;
38
+ }) => Promise<SyncTransactionReceipt>;
39
+ /**
40
+ * Helper function for "eth_getBlockReceipts" request.
41
+ */
42
+ export declare const _eth_getBlockReceipts: (requestQueue: RequestQueue, { blockHash }: {
43
+ blockHash: Hash;
44
+ }) => Promise<SyncTransactionReceipt[]>;
45
+ /**
46
+ * Helper function for "debug_traceBlockByNumber" request.
47
+ */
48
+ export declare const _debug_traceBlockByNumber: (requestQueue: RequestQueue, { blockNumber, }: {
49
+ blockNumber: Hex | number;
50
+ }) => Promise<SyncTrace[]>;
51
+ /**
52
+ * Helper function for "debug_traceBlockByHash" request.
53
+ */
54
+ export declare const _debug_traceBlockByHash: (requestQueue: RequestQueue, { hash, }: {
55
+ hash: Hash;
56
+ }) => Promise<SyncTrace[]>;
57
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,SAAS,EACT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,IAAI,EACT,KAAK,GAAG,EACR,KAAK,QAAQ,EAGd,MAAM,MAAM,CAAC;AAEd;;GAEG;AACH,eAAO,MAAM,qBAAqB,iBAClB,YAAY;iBAKP,GAAG,GAAG,MAAM;;;;cACM,QAAQ;MAC5C,QAAQ,SAAS,CAiBd,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,mBAAmB,iBAChB,YAAY;UACR,GAAG;MACpB,QAAQ,SAAS,CAYd,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,YAAY,iBACT,YAAY,UAClB;IACN,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;CACrB,GAAG,CACA;IAAE,SAAS,EAAE,GAAG,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAA;CAAE,GAClD;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CACtB,KACA,QAAQ,OAAO,EAAE,CA6CnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,iBACvB,YAAY;UACR,GAAG;MACpB,QAAQ,sBAAsB,CAY3B,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,qBAAqB,iBAClB,YAAY;eACE,IAAI;MAC/B,QAAQ,sBAAsB,EAAE,CAMqC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,yBAAyB,iBACtB,YAAY;iBAIX,GAAG,GAAG,MAAM;MAE1B,QAAQ,SAAS,EAAE,CA8DhB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,uBAAuB,iBACpB,YAAY;UAIlB,IAAI;MAEX,QAAQ,SAAS,EAAE,CAyDhB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Serialize function that handles BigInt.
3
+ *
4
+ * Forked from https://github.com/wevm/wagmi
5
+ *
6
+ * @param value to stringify
7
+ * @returns the stringified output
8
+ */
9
+ export declare function serialize(value: any): string;
10
+ /**
11
+ * Deserialize function that handles BigInt.
12
+ *
13
+ * Forked from https://github.com/wevm/wagmi
14
+ *
15
+ * @param value to parse
16
+ * @returns the output object
17
+ */
18
+ export declare function deserialize<type>(value: string): type;
19
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,UAInC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrD"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Measures the elapsed wall clock time in milliseconds (ms) between two points.
3
+ * @returns A function returning the elapsed time in milliseconds (ms).
4
+ */
5
+ export declare function startClock(): () => number;
6
+ /**
7
+ * Converts a process.hrtime() measurement to milliseconds (ms).
8
+ * @returns The timestamp in milliseconds (ms).
9
+ */
10
+ export declare function hrTimeToMs(diff: [number, number]): number;
11
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/utils/timer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,UAAU,iBAGzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,UAGhD"}
@@ -0,0 +1,6 @@
1
+ /** Waits at least a specified amount of time.
2
+ *
3
+ * @param milliseconds Minimum number of milliseconds to wait.
4
+ */
5
+ export declare function wait(milliseconds: number): Promise<void>;
6
+ //# sourceMappingURL=wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/utils/wait.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAsB,IAAI,CAAC,YAAY,EAAE,MAAM,iBAE9C"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Merges two sorted arrays into a single sorted array.
3
+ *
4
+ * @param array1 - The first array to merge.
5
+ * @param array2 - The second array to merge.
6
+ * @param compare - The comparison function to use.
7
+ *
8
+ * @returns The merged array.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const result = zipper([1, 3, 5], [2, 4, 6]);
13
+ * // result = [1, 2, 3, 4, 5, 6]
14
+ * ```
15
+ */
16
+ export declare const zipper: <T>(array1: T[], array2: T[], compare?: ((a: T, b: T) => number) | undefined) => T[];
17
+ /**
18
+ * Merges many sorted arrays into a single sorted array.
19
+ *
20
+ * @param arrays - The arrays to merge.
21
+ * @param compare - The comparison function to use.
22
+ *
23
+ * @returns The merged array.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const result = zipperMany([
28
+ * [1, 3, 5],
29
+ * [2, 4, 6],
30
+ * [7, 8, 9],
31
+ * ]);
32
+ * // result = [1, 2, 3, 4, 5, 6, 7, 8, 9]
33
+ * ```
34
+ */
35
+ export declare const zipperMany: <T>(arrays: T[][], compare?: ((a: T, b: T) => number) | undefined) => T[];
36
+ //# sourceMappingURL=zipper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zipper.d.ts","sourceRoot":"","sources":["../../../src/utils/zipper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,2DAGS,MAAM,qBA2BjC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,gDAEK,MAAM,qBAYjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ponder",
3
- "version": "0.9.4",
3
+ "version": "0.9.5-debug.1",
4
4
  "description": "An open-source framework for crypto application backends",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -12,20 +12,22 @@
12
12
  "files": [
13
13
  "dist",
14
14
  "src/**/*.ts",
15
- "!src/**/*.test.ts",
16
- "!src/**/*.test-d.ts",
17
- "!src/_test/**/*"
15
+ "!src/_test/**/*",
16
+ "!**/*.test.ts",
17
+ "!**/*.test-d.ts",
18
+ "!**/*.tsbuildinfo",
19
+ "CHANGELOG.md"
18
20
  ],
19
21
  "bin": {
20
- "ponder": "./dist/bin/ponder.js"
22
+ "ponder": "./dist/esm/bin/ponder.js"
21
23
  },
22
- "module": "./dist/index.js",
23
- "types": "./dist/index.d.ts",
24
- "typings": "./dist/index.d.ts",
24
+ "module": "./dist/esm/index.js",
25
+ "types": "./dist/types/index.d.ts",
26
+ "typings": "./dist/types/index.d.ts",
25
27
  "exports": {
26
28
  ".": {
27
- "types": "./dist/index.d.ts",
28
- "import": "./dist/index.js"
29
+ "types": "./dist/types/index.d.ts",
30
+ "import": "./dist/esm/index.js"
29
31
  },
30
32
  "./virtual": {
31
33
  "types": "./src/types.d.ts"
@@ -85,20 +87,18 @@
85
87
  "@types/react": "^18.2.38",
86
88
  "@viem/anvil": "^0.0.6",
87
89
  "@wagmi/cli": "^1.5.2",
90
+ "chokidar": "^4.0.3",
88
91
  "execa": "^8.0.1",
89
92
  "rimraf": "^5.0.5",
90
- "tsup": "^8.0.1",
91
- "vitest": "^1.0.2"
92
- },
93
- "imports": {
94
- "@ponder/common": "../common/index.ts",
95
- "@ponder/client": "../client/index.ts"
93
+ "tsx": "^4.19.2",
94
+ "vitest": "^1.0.2",
95
+ "@ponder/client": "0.9.5"
96
96
  },
97
97
  "engines": {
98
98
  "node": ">=18.14"
99
99
  },
100
100
  "scripts": {
101
- "build": "tsup",
101
+ "build": "tsx build.ts",
102
102
  "test": "vitest",
103
103
  "test:typecheck": "vitest --typecheck.only",
104
104
  "typecheck": "tsc --noEmit"
@@ -9,8 +9,8 @@ import { createShutdown } from "@/internal/shutdown.js";
9
9
  import { buildPayload, createTelemetry } from "@/internal/telemetry.js";
10
10
  import type { IndexingBuild } from "@/internal/types.js";
11
11
  import { createUi } from "@/ui/index.js";
12
+ import { createQueue } from "@/utils/queue.js";
12
13
  import { type Result, mergeResults } from "@/utils/result.js";
13
- import { createQueue } from "@ponder/common";
14
14
  import type { CliOptions } from "../ponder.js";
15
15
  import { createExit } from "../utils/exit.js";
16
16
  import { run } from "../utils/run.js";
package/src/bin/ponder.ts CHANGED
@@ -14,7 +14,7 @@ import { start } from "./commands/start.js";
14
14
  dotenv.config({ path: ".env.local" });
15
15
 
16
16
  const __dirname = dirname(fileURLToPath(import.meta.url));
17
- const packageJsonPath = resolve(__dirname, "../../package.json");
17
+ const packageJsonPath = resolve(__dirname, "../../../package.json");
18
18
  const packageJson = JSON.parse(
19
19
  readFileSync(packageJsonPath, { encoding: "utf8" }),
20
20
  );
@@ -8,7 +8,6 @@ import type { Common } from "@/internal/common.js";
8
8
  import { getAppProgress } from "@/internal/metrics.js";
9
9
  import type { IndexingBuild, PreBuild, SchemaBuild } from "@/internal/types.js";
10
10
  import { createSyncStore } from "@/sync-store/index.js";
11
- import { decodeEvents } from "@/sync/events.js";
12
11
  import { type RealtimeEvent, createSync, splitEvents } from "@/sync/index.js";
13
12
  import {
14
13
  ZERO_CHECKPOINT_STRING,
@@ -135,12 +134,8 @@ export async function run({
135
134
  // Run historical indexing until complete.
136
135
  for await (const events of sync.getEvents()) {
137
136
  if (events.length > 0) {
138
- const decodedEvents = decodeEvents(common, indexingBuild.sources, events);
139
- const eventChunks = chunk(decodedEvents, 93);
140
- common.logger.debug({
141
- service: "app",
142
- msg: `Decoded ${decodedEvents.length} events`,
143
- });
137
+ const eventChunks = chunk(events, 93);
138
+
144
139
  for (const eventChunk of eventChunks) {
145
140
  const result = await indexingService.processEvents({
146
141
  events: eventChunk,
@@ -196,12 +191,12 @@ export async function run({
196
191
  if (eta === undefined || progress === undefined) {
197
192
  common.logger.info({
198
193
  service: "app",
199
- msg: `Indexed ${decodedEvents.length} events`,
194
+ msg: `Indexed ${events.length} events`,
200
195
  });
201
196
  } else {
202
197
  common.logger.info({
203
198
  service: "app",
204
- msg: `Indexed ${decodedEvents.length} events with ${formatPercentage(progress)} complete and ${formatEta(eta * 1_000)} remaining`,
199
+ msg: `Indexed ${events.length} events with ${formatPercentage(progress)} complete and ${formatEta(eta * 1_000)} remaining`,
205
200
  });
206
201
  }
207
202
 
@@ -306,24 +301,18 @@ export async function run({
306
301
  Number(decodeCheckpoint(checkpoint).chainId),
307
302
  )!;
308
303
 
309
- const decodedEvents = decodeEvents(
310
- common,
311
- indexingBuild.sources,
312
- events,
313
- );
314
-
315
304
  common.logger.debug({
316
305
  service: "app",
317
- msg: `Decoded ${decodedEvents.length} '${network.name}' events for block ${Number(decodeCheckpoint(checkpoint).blockNumber)}`,
306
+ msg: `Decoded ${events.length} '${network.name}' events for block ${Number(decodeCheckpoint(checkpoint).blockNumber)}`,
318
307
  });
319
308
 
320
309
  const result = await indexingService.processEvents({
321
- events: decodedEvents,
310
+ events,
322
311
  });
323
312
 
324
313
  common.logger.info({
325
314
  service: "app",
326
- msg: `Indexed ${decodedEvents.length} '${network.name}' events for block ${Number(decodeCheckpoint(checkpoint).blockNumber)}`,
315
+ msg: `Indexed ${events.length} '${network.name}' events for block ${Number(decodeCheckpoint(checkpoint).blockNumber)}`,
327
316
  });
328
317
 
329
318
  if (result.status === "error") onReloadableError(result.error);
@@ -25,8 +25,8 @@ import {
25
25
  } from "@/sync/filter.js";
26
26
  import type { SyncBlock } from "@/types/sync.js";
27
27
  import { chains } from "@/utils/chains.js";
28
+ import { dedupe } from "@/utils/dedupe.js";
28
29
  import { toLowerCase } from "@/utils/lowercase.js";
29
- import { dedupe } from "@ponder/common";
30
30
  import { BlockNotFoundError, type Hex, type LogTopic, hexToNumber } from "viem";
31
31
  import { buildLogFactory } from "./factory.js";
32
32
 
@@ -1,7 +1,7 @@
1
1
  import type { LogFactory } from "@/internal/types.js";
2
+ import { dedupe } from "@/utils/dedupe.js";
2
3
  import { toLowerCase } from "@/utils/lowercase.js";
3
4
  import { getBytesConsumedByParam } from "@/utils/offset.js";
4
- import { dedupe } from "@ponder/common";
5
5
  import type { AbiEvent } from "abitype";
6
6
  import { type Address, toEventSelector } from "viem";
7
7
 
@@ -1,6 +1,6 @@
1
1
  import type { Schema } from "@/internal/types.js";
2
2
  import type { ReadonlyDrizzle } from "@/types/db.js";
3
- import { promiseWithResolvers } from "@ponder/common";
3
+ import { promiseWithResolvers } from "@/utils/promiseWithResolvers.js";
4
4
  import type { QueryWithTypings } from "drizzle-orm";
5
5
  import { type PgSession, pgTable } from "drizzle-orm/pg-core";
6
6
  import { createMiddleware } from "hono/factory";
@@ -457,7 +457,7 @@ const columnToGraphQLCore = (
457
457
  const enumType = enumTypes[column.enum.enumName];
458
458
  if (enumType === undefined) {
459
459
  throw new Error(
460
- `Internal error: Expected to find a GraphQL enum named "${column.enum.enumName}"`,
460
+ `Internal error: Expected to find a GraphQL enum named "${column.enum.enumName}". This may happen if "${column.enum.enumName}" has not been exported from your Ponder schema`,
461
461
  );
462
462
  }
463
463
 
@@ -14,7 +14,7 @@ import {
14
14
  } from "@/internal/errors.js";
15
15
  import type { SchemaBuild } from "@/internal/types.js";
16
16
  import { prettyPrint } from "@/utils/print.js";
17
- import { createQueue } from "@ponder/common";
17
+ import { createQueue } from "@/utils/queue.js";
18
18
  import {
19
19
  type Column,
20
20
  type QueryWithTypings,
@@ -9,6 +9,7 @@ import {
9
9
  } from "@/internal/errors.js";
10
10
  import type { SchemaBuild } from "@/internal/types.js";
11
11
  import { prettyPrint } from "@/utils/print.js";
12
+ import { createQueue } from "@/utils/queue.js";
12
13
  import {
13
14
  type QueryWithTypings,
14
15
  type SQL,
@@ -20,7 +21,6 @@ import {
20
21
  } from "drizzle-orm";
21
22
  import { type PgTable, getTableConfig } from "drizzle-orm/pg-core";
22
23
  import { drizzle } from "drizzle-orm/pg-proxy";
23
- import { createQueue } from "../../../common/src/queue.js";
24
24
  import { normalizeColumn } from "./historical.js";
25
25
  import { type IndexingStore, parseSqlError } from "./index.js";
26
26
 
@@ -5,8 +5,8 @@ import os from "node:os";
5
5
  import path from "node:path";
6
6
  import { promisify } from "node:util";
7
7
  import type { Options } from "@/internal/options.js";
8
+ import { createQueue } from "@/utils/queue.js";
8
9
  import { startClock } from "@/utils/timer.js";
9
- import { createQueue } from "@ponder/common";
10
10
  import Conf from "conf";
11
11
  import { type PM, detect, getNpmVersion } from "detect-package-manager";
12
12
  import { ShutdownError } from "./errors.js";
@@ -12,7 +12,7 @@ import type {
12
12
  TransactionFilter,
13
13
  TransferFilter,
14
14
  } from "@/internal/types.js";
15
- import { dedupe } from "@ponder/common";
15
+ import { dedupe } from "@/utils/dedupe.js";
16
16
  import type { Address, Hex } from "viem";
17
17
  import { isAddressFactory, shouldGetTransactionReceipt } from "./filter.js";
18
18
 
package/src/sync/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Common } from "@/internal/common.js";
2
2
  import type {
3
+ Event,
3
4
  Factory,
4
5
  Filter,
5
6
  IndexingBuild,
@@ -52,11 +53,11 @@ import { _eth_getBlockByNumber } from "@/utils/rpc.js";
52
53
  import { startClock } from "@/utils/timer.js";
53
54
  import { zipperMany } from "@/utils/zipper.js";
54
55
  import { type Address, type Hash, hexToBigInt, hexToNumber, toHex } from "viem";
55
- import { buildEvents } from "./events.js";
56
+ import { buildEvents, decodeEvents } from "./events.js";
56
57
  import { isAddressFactory } from "./filter.js";
57
58
 
58
59
  export type Sync = {
59
- getEvents(): AsyncGenerator<RawEvent[]>;
60
+ getEvents(): AsyncGenerator<Event[]>;
60
61
  startRealtime(): Promise<void>;
61
62
  getStatus(): Status;
62
63
  seconds: Seconds;
@@ -68,7 +69,7 @@ export type RealtimeEvent =
68
69
  type: "block";
69
70
  checkpoint: string;
70
71
  status: Status;
71
- events: RawEvent[];
72
+ events: Event[];
72
73
  network: Network;
73
74
  }
74
75
  | {
@@ -155,23 +156,23 @@ const getHistoricalLast = (
155
156
  };
156
157
 
157
158
  export const splitEvents = (
158
- events: RawEvent[],
159
- ): { checkpoint: string; events: RawEvent[] }[] => {
159
+ events: Event[],
160
+ ): { checkpoint: string; events: Event[] }[] => {
160
161
  let hash: Hash | undefined;
161
- const result: { checkpoint: string; events: RawEvent[] }[] = [];
162
+ const result: { checkpoint: string; events: Event[] }[] = [];
162
163
 
163
164
  for (const event of events) {
164
- if (hash === undefined || hash !== event.block.hash) {
165
+ if (hash === undefined || hash !== event.event.block.hash) {
165
166
  result.push({
166
167
  checkpoint: encodeCheckpoint({
167
168
  ...MAX_CHECKPOINT,
168
- blockTimestamp: Number(event.block.timestamp),
169
+ blockTimestamp: Number(event.event.block.timestamp),
169
170
  chainId: BigInt(event.chainId),
170
- blockNumber: event.block.number,
171
+ blockNumber: event.event.block.number,
171
172
  }),
172
173
  events: [],
173
174
  });
174
- hash = event.block.hash;
175
+ hash = event.event.block.hash;
175
176
  }
176
177
 
177
178
  result[result.length - 1]!.events.push(event);
@@ -264,7 +265,7 @@ export const createSync = async (params: {
264
265
  events,
265
266
  checkpoint,
266
267
  network,
267
- }: { events: RawEvent[]; checkpoint: string; network: Network }) => {
268
+ }: { events: Event[]; checkpoint: string; network: Network }) => {
268
269
  if (Number(decodeCheckpoint(checkpoint).chainId) === network.chainId) {
269
270
  status[network.name]!.block = {
270
271
  timestamp: decodeCheckpoint(checkpoint).blockTimestamp,
@@ -349,7 +350,18 @@ export const createSync = async (params: {
349
350
  ),
350
351
  });
351
352
 
352
- return bufferAsyncGenerator(localEventGenerator, 1);
353
+ async function* decodeEventGenerator() {
354
+ for await (const { events, checkpoint } of localEventGenerator) {
355
+ const decodedEvents = decodeEvents(params.common, sources, events);
356
+ params.common.logger.debug({
357
+ service: "app",
358
+ msg: `Decoded ${decodedEvents.length} '${network.name}' events`,
359
+ });
360
+ yield { events: decodedEvents, checkpoint };
361
+ }
362
+ }
363
+
364
+ return bufferAsyncGenerator(decodeEventGenerator(), 1);
353
365
  },
354
366
  );
355
367
 
@@ -403,10 +415,12 @@ export const createSync = async (params: {
403
415
  event: RealtimeSyncEvent,
404
416
  {
405
417
  network,
418
+ sources,
406
419
  syncProgress,
407
420
  realtimeSync,
408
421
  }: {
409
422
  network: Network;
423
+ sources: Source[];
410
424
  syncProgress: SyncProgress;
411
425
  realtimeSync: RealtimeSync;
412
426
  },
@@ -442,9 +456,20 @@ export const createSync = async (params: {
442
456
  pendingEvents = [];
443
457
  executedEvents = executedEvents.concat(readyEvents);
444
458
 
459
+ const decodedEvents = decodeEvents(
460
+ params.common,
461
+ sources,
462
+ readyEvents,
463
+ );
464
+
465
+ params.common.logger.debug({
466
+ service: "sync",
467
+ msg: `Decoded ${decodedEvents.length} '${network.name}' events for block ${hexToNumber(event.block.number)}`,
468
+ });
469
+
445
470
  params.common.logger.debug({
446
471
  service: "sync",
447
- msg: `Sequenced ${readyEvents.length} '${network.name}' events for block ${hexToNumber(event.block.number)}`,
472
+ msg: `Sequenced ${decodedEvents.length} '${network.name}' events for block ${hexToNumber(event.block.number)}`,
448
473
  });
449
474
 
450
475
  params
@@ -452,7 +477,7 @@ export const createSync = async (params: {
452
477
  type: "block",
453
478
  checkpoint,
454
479
  status: structuredClone(status),
455
- events: readyEvents.sort((a, b) =>
480
+ events: decodedEvents.sort((a, b) =>
456
481
  a.checkpoint < b.checkpoint ? -1 : 1,
457
482
  ),
458
483
  network,
@@ -495,9 +520,20 @@ export const createSync = async (params: {
495
520
  .filter(({ checkpoint }) => checkpoint > to);
496
521
  executedEvents = executedEvents.concat(readyEvents);
497
522
 
523
+ const decodedEvents = decodeEvents(
524
+ params.common,
525
+ sources,
526
+ readyEvents,
527
+ );
528
+
529
+ params.common.logger.debug({
530
+ service: "sync",
531
+ msg: `Decoded ${decodedEvents.length} '${network.name}' events for block ${hexToNumber(event.block.number)}`,
532
+ });
533
+
498
534
  params.common.logger.debug({
499
535
  service: "sync",
500
- msg: `Sequenced ${readyEvents.length} '${network.name}' events for timestamp range [${decodeCheckpoint(from).blockTimestamp}, ${decodeCheckpoint(to).blockTimestamp}]`,
536
+ msg: `Sequenced ${decodedEvents.length} '${network.name}' events for timestamp range [${decodeCheckpoint(from).blockTimestamp}, ${decodeCheckpoint(to).blockTimestamp}]`,
501
537
  });
502
538
 
503
539
  params
@@ -505,7 +541,7 @@ export const createSync = async (params: {
505
541
  type: "block",
506
542
  checkpoint: to,
507
543
  status: structuredClone(status),
508
- events: readyEvents.sort((a, b) =>
544
+ events: decodedEvents.sort((a, b) =>
509
545
  a.checkpoint < b.checkpoint ? -1 : 1,
510
546
  ),
511
547
  network,
@@ -698,6 +734,7 @@ export const createSync = async (params: {
698
734
  .then((event) => {
699
735
  onRealtimeSyncEvent(event, {
700
736
  network,
737
+ sources,
701
738
  syncProgress,
702
739
  realtimeSync,
703
740
  });
@@ -805,7 +842,6 @@ export const createSync = async (params: {
805
842
  const filters = params.indexingBuild.sources
806
843
  .filter(({ filter }) => filter.chainId === network.chainId)
807
844
  .map(({ filter }) => filter);
808
-
809
845
  status[network.name]!.block = {
810
846
  number: hexToNumber(syncProgress.current!.number),
811
847
  timestamp: hexToNumber(syncProgress.current!.timestamp),
@@ -1167,6 +1203,10 @@ export async function* getLocalEventGenerator(params: {
1167
1203
  cursor = queryCursor;
1168
1204
  yield { events, checkpoint: cursor };
1169
1205
  } catch (error) {
1206
+ if (params.common.shutdown.isKilled) {
1207
+ throw error;
1208
+ }
1209
+
1170
1210
  params.common.logger.warn({
1171
1211
  service: "sync",
1172
1212
  msg: `Failed '${params.network.name}' extract query for timestamp range [${decodeCheckpoint(cursor).blockTimestamp}, ${decodeCheckpoint(to).blockTimestamp}]`,
@@ -1525,8 +1565,8 @@ export const getCachedBlock = ({
1525
1565
  * @returns A single generator that yields events from all generators.
1526
1566
  */
1527
1567
  export async function* mergeAsyncGeneratorsWithEventOrder(
1528
- generators: AsyncGenerator<{ events: RawEvent[]; checkpoint: string }>[],
1529
- ): AsyncGenerator<{ events: RawEvent[]; checkpoint: string }> {
1568
+ generators: AsyncGenerator<{ events: Event[]; checkpoint: string }>[],
1569
+ ): AsyncGenerator<{ events: Event[]; checkpoint: string }> {
1530
1570
  const results = await Promise.all(generators.map((gen) => gen.next()));
1531
1571
 
1532
1572
  while (results.some((res) => res.done !== true)) {
@@ -1534,7 +1574,7 @@ export async function* mergeAsyncGeneratorsWithEventOrder(
1534
1574
  ...results.map((res) => (res.done ? undefined : res.value.checkpoint)),
1535
1575
  );
1536
1576
 
1537
- const eventArrays: RawEvent[][] = [];
1577
+ const eventArrays: Event[][] = [];
1538
1578
 
1539
1579
  for (const result of results) {
1540
1580
  if (result.done === false) {