@mikeatlast/ponder 0.16.1-fork.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 (619) hide show
  1. package/CHANGELOG.md +3415 -0
  2. package/README.md +186 -0
  3. package/dist/esm/bin/commands/codegen.js +46 -0
  4. package/dist/esm/bin/commands/codegen.js.map +1 -0
  5. package/dist/esm/bin/commands/createViews.js +196 -0
  6. package/dist/esm/bin/commands/createViews.js.map +1 -0
  7. package/dist/esm/bin/commands/dev.js +430 -0
  8. package/dist/esm/bin/commands/dev.js.map +1 -0
  9. package/dist/esm/bin/commands/list.js +148 -0
  10. package/dist/esm/bin/commands/list.js.map +1 -0
  11. package/dist/esm/bin/commands/prune.js +223 -0
  12. package/dist/esm/bin/commands/prune.js.map +1 -0
  13. package/dist/esm/bin/commands/serve.js +198 -0
  14. package/dist/esm/bin/commands/serve.js.map +1 -0
  15. package/dist/esm/bin/commands/start.js +253 -0
  16. package/dist/esm/bin/commands/start.js.map +1 -0
  17. package/dist/esm/bin/isolatedController.js +200 -0
  18. package/dist/esm/bin/isolatedController.js.map +1 -0
  19. package/dist/esm/bin/isolatedWorker.js +146 -0
  20. package/dist/esm/bin/isolatedWorker.js.map +1 -0
  21. package/dist/esm/bin/ponder.js +137 -0
  22. package/dist/esm/bin/ponder.js.map +1 -0
  23. package/dist/esm/bin/utils/codegen.js +25 -0
  24. package/dist/esm/bin/utils/codegen.js.map +1 -0
  25. package/dist/esm/bin/utils/exit.js +100 -0
  26. package/dist/esm/bin/utils/exit.js.map +1 -0
  27. package/dist/esm/build/config.js +745 -0
  28. package/dist/esm/build/config.js.map +1 -0
  29. package/dist/esm/build/factory.js +82 -0
  30. package/dist/esm/build/factory.js.map +1 -0
  31. package/dist/esm/build/index.js +567 -0
  32. package/dist/esm/build/index.js.map +1 -0
  33. package/dist/esm/build/plugin.js +53 -0
  34. package/dist/esm/build/plugin.js.map +1 -0
  35. package/dist/esm/build/pre.js +83 -0
  36. package/dist/esm/build/pre.js.map +1 -0
  37. package/dist/esm/build/schema.js +202 -0
  38. package/dist/esm/build/schema.js.map +1 -0
  39. package/dist/esm/build/stacktrace.js +137 -0
  40. package/dist/esm/build/stacktrace.js.map +1 -0
  41. package/dist/esm/client/index.js +441 -0
  42. package/dist/esm/client/index.js.map +1 -0
  43. package/dist/esm/config/address.js +2 -0
  44. package/dist/esm/config/address.js.map +1 -0
  45. package/dist/esm/config/eventFilter.js +2 -0
  46. package/dist/esm/config/eventFilter.js.map +1 -0
  47. package/dist/esm/config/index.js +2 -0
  48. package/dist/esm/config/index.js.map +1 -0
  49. package/dist/esm/config/utilityTypes.js +2 -0
  50. package/dist/esm/config/utilityTypes.js.map +1 -0
  51. package/dist/esm/database/actions.js +445 -0
  52. package/dist/esm/database/actions.js.map +1 -0
  53. package/dist/esm/database/index.js +604 -0
  54. package/dist/esm/database/index.js.map +1 -0
  55. package/dist/esm/database/queryBuilder.js +314 -0
  56. package/dist/esm/database/queryBuilder.js.map +1 -0
  57. package/dist/esm/drizzle/bigint.js +38 -0
  58. package/dist/esm/drizzle/bigint.js.map +1 -0
  59. package/dist/esm/drizzle/bytes.js +47 -0
  60. package/dist/esm/drizzle/bytes.js.map +1 -0
  61. package/dist/esm/drizzle/hex.js +40 -0
  62. package/dist/esm/drizzle/hex.js.map +1 -0
  63. package/dist/esm/drizzle/index.js +28 -0
  64. package/dist/esm/drizzle/index.js.map +1 -0
  65. package/dist/esm/drizzle/json.js +123 -0
  66. package/dist/esm/drizzle/json.js.map +1 -0
  67. package/dist/esm/drizzle/kit/index.js +927 -0
  68. package/dist/esm/drizzle/kit/index.js.map +1 -0
  69. package/dist/esm/drizzle/onchain.js +184 -0
  70. package/dist/esm/drizzle/onchain.js.map +1 -0
  71. package/dist/esm/drizzle/text.js +61 -0
  72. package/dist/esm/drizzle/text.js.map +1 -0
  73. package/dist/esm/graphql/graphiql.html.js +59 -0
  74. package/dist/esm/graphql/graphiql.html.js.map +1 -0
  75. package/dist/esm/graphql/index.js +934 -0
  76. package/dist/esm/graphql/index.js.map +1 -0
  77. package/dist/esm/graphql/json.js +42 -0
  78. package/dist/esm/graphql/json.js.map +1 -0
  79. package/dist/esm/graphql/middleware.js +83 -0
  80. package/dist/esm/graphql/middleware.js.map +1 -0
  81. package/dist/esm/index.js +9 -0
  82. package/dist/esm/index.js.map +1 -0
  83. package/dist/esm/indexing/addStackTrace.js +54 -0
  84. package/dist/esm/indexing/addStackTrace.js.map +1 -0
  85. package/dist/esm/indexing/client.js +675 -0
  86. package/dist/esm/indexing/client.js.map +1 -0
  87. package/dist/esm/indexing/index.js +663 -0
  88. package/dist/esm/indexing/index.js.map +1 -0
  89. package/dist/esm/indexing/profile.js +584 -0
  90. package/dist/esm/indexing/profile.js.map +1 -0
  91. package/dist/esm/indexing-store/cache.js +666 -0
  92. package/dist/esm/indexing-store/cache.js.map +1 -0
  93. package/dist/esm/indexing-store/index.js +461 -0
  94. package/dist/esm/indexing-store/index.js.map +1 -0
  95. package/dist/esm/indexing-store/profile.js +428 -0
  96. package/dist/esm/indexing-store/profile.js.map +1 -0
  97. package/dist/esm/indexing-store/utils.js +111 -0
  98. package/dist/esm/indexing-store/utils.js.map +1 -0
  99. package/dist/esm/internal/common.js +2 -0
  100. package/dist/esm/internal/common.js.map +1 -0
  101. package/dist/esm/internal/errors.js +300 -0
  102. package/dist/esm/internal/errors.js.map +1 -0
  103. package/dist/esm/internal/logger.js +178 -0
  104. package/dist/esm/internal/logger.js.map +1 -0
  105. package/dist/esm/internal/metrics.js +1049 -0
  106. package/dist/esm/internal/metrics.js.map +1 -0
  107. package/dist/esm/internal/options.js +73 -0
  108. package/dist/esm/internal/options.js.map +1 -0
  109. package/dist/esm/internal/shutdown.js +24 -0
  110. package/dist/esm/internal/shutdown.js.map +1 -0
  111. package/dist/esm/internal/telemetry.js +200 -0
  112. package/dist/esm/internal/telemetry.js.map +1 -0
  113. package/dist/esm/internal/types.js +2 -0
  114. package/dist/esm/internal/types.js.map +1 -0
  115. package/dist/esm/rpc/actions.js +988 -0
  116. package/dist/esm/rpc/actions.js.map +1 -0
  117. package/dist/esm/rpc/http.js +130 -0
  118. package/dist/esm/rpc/http.js.map +1 -0
  119. package/dist/esm/rpc/index.js +749 -0
  120. package/dist/esm/rpc/index.js.map +1 -0
  121. package/dist/esm/runtime/events.js +664 -0
  122. package/dist/esm/runtime/events.js.map +1 -0
  123. package/dist/esm/runtime/filter.js +476 -0
  124. package/dist/esm/runtime/filter.js.map +1 -0
  125. package/dist/esm/runtime/fragments.js +478 -0
  126. package/dist/esm/runtime/fragments.js.map +1 -0
  127. package/dist/esm/runtime/historical.js +954 -0
  128. package/dist/esm/runtime/historical.js.map +1 -0
  129. package/dist/esm/runtime/index.js +316 -0
  130. package/dist/esm/runtime/index.js.map +1 -0
  131. package/dist/esm/runtime/init.js +12 -0
  132. package/dist/esm/runtime/init.js.map +1 -0
  133. package/dist/esm/runtime/isolated.js +464 -0
  134. package/dist/esm/runtime/isolated.js.map +1 -0
  135. package/dist/esm/runtime/multichain.js +511 -0
  136. package/dist/esm/runtime/multichain.js.map +1 -0
  137. package/dist/esm/runtime/omnichain.js +546 -0
  138. package/dist/esm/runtime/omnichain.js.map +1 -0
  139. package/dist/esm/runtime/realtime.js +722 -0
  140. package/dist/esm/runtime/realtime.js.map +1 -0
  141. package/dist/esm/server/error.js +56 -0
  142. package/dist/esm/server/error.js.map +1 -0
  143. package/dist/esm/server/index.js +121 -0
  144. package/dist/esm/server/index.js.map +1 -0
  145. package/dist/esm/sync-historical/index.js +703 -0
  146. package/dist/esm/sync-historical/index.js.map +1 -0
  147. package/dist/esm/sync-realtime/bloom.js +76 -0
  148. package/dist/esm/sync-realtime/bloom.js.map +1 -0
  149. package/dist/esm/sync-realtime/index.js +918 -0
  150. package/dist/esm/sync-realtime/index.js.map +1 -0
  151. package/dist/esm/sync-store/encode.js +105 -0
  152. package/dist/esm/sync-store/encode.js.map +1 -0
  153. package/dist/esm/sync-store/index.js +885 -0
  154. package/dist/esm/sync-store/index.js.map +1 -0
  155. package/dist/esm/sync-store/migrations.js +1595 -0
  156. package/dist/esm/sync-store/migrations.js.map +1 -0
  157. package/dist/esm/sync-store/schema.js +181 -0
  158. package/dist/esm/sync-store/schema.js.map +1 -0
  159. package/dist/esm/types/db.js +2 -0
  160. package/dist/esm/types/db.js.map +1 -0
  161. package/dist/esm/types/eth.js +2 -0
  162. package/dist/esm/types/eth.js.map +1 -0
  163. package/dist/esm/types/utils.js +2 -0
  164. package/dist/esm/types/utils.js.map +1 -0
  165. package/dist/esm/types/virtual.js +2 -0
  166. package/dist/esm/types/virtual.js.map +1 -0
  167. package/dist/esm/ui/app.js +157 -0
  168. package/dist/esm/ui/app.js.map +1 -0
  169. package/dist/esm/ui/index.js +29 -0
  170. package/dist/esm/ui/index.js.map +1 -0
  171. package/dist/esm/ui/patch.js +140 -0
  172. package/dist/esm/ui/patch.js.map +1 -0
  173. package/dist/esm/utils/abi.js +55 -0
  174. package/dist/esm/utils/abi.js.map +1 -0
  175. package/dist/esm/utils/bigint.js +37 -0
  176. package/dist/esm/utils/bigint.js.map +1 -0
  177. package/dist/esm/utils/chains.js +21 -0
  178. package/dist/esm/utils/chains.js.map +1 -0
  179. package/dist/esm/utils/checkpoint.js +139 -0
  180. package/dist/esm/utils/checkpoint.js.map +1 -0
  181. package/dist/esm/utils/chunk.js +8 -0
  182. package/dist/esm/utils/chunk.js.map +1 -0
  183. package/dist/esm/utils/copy.js +129 -0
  184. package/dist/esm/utils/copy.js.map +1 -0
  185. package/dist/esm/utils/date.js +27 -0
  186. package/dist/esm/utils/date.js.map +1 -0
  187. package/dist/esm/utils/debug.js +2 -0
  188. package/dist/esm/utils/debug.js.map +1 -0
  189. package/dist/esm/utils/decodeAbiParameters.js +290 -0
  190. package/dist/esm/utils/decodeAbiParameters.js.map +1 -0
  191. package/dist/esm/utils/decodeEventLog.js +75 -0
  192. package/dist/esm/utils/decodeEventLog.js.map +1 -0
  193. package/dist/esm/utils/dedupe.js +29 -0
  194. package/dist/esm/utils/dedupe.js.map +1 -0
  195. package/dist/esm/utils/duplicates.js +19 -0
  196. package/dist/esm/utils/duplicates.js.map +1 -0
  197. package/dist/esm/utils/estimate.js +6 -0
  198. package/dist/esm/utils/estimate.js.map +1 -0
  199. package/dist/esm/utils/finality.js +38 -0
  200. package/dist/esm/utils/finality.js.map +1 -0
  201. package/dist/esm/utils/format.js +20 -0
  202. package/dist/esm/utils/format.js.map +1 -0
  203. package/dist/esm/utils/generators.js +121 -0
  204. package/dist/esm/utils/generators.js.map +1 -0
  205. package/dist/esm/utils/hash.js +11 -0
  206. package/dist/esm/utils/hash.js.map +1 -0
  207. package/dist/esm/utils/interval.js +171 -0
  208. package/dist/esm/utils/interval.js.map +1 -0
  209. package/dist/esm/utils/lowercase.js +7 -0
  210. package/dist/esm/utils/lowercase.js.map +1 -0
  211. package/dist/esm/utils/mutex.js +26 -0
  212. package/dist/esm/utils/mutex.js.map +1 -0
  213. package/dist/esm/utils/never.js +4 -0
  214. package/dist/esm/utils/never.js.map +1 -0
  215. package/dist/esm/utils/offset.js +101 -0
  216. package/dist/esm/utils/offset.js.map +1 -0
  217. package/dist/esm/utils/order.js +18 -0
  218. package/dist/esm/utils/order.js.map +1 -0
  219. package/dist/esm/utils/partition.js +46 -0
  220. package/dist/esm/utils/partition.js.map +1 -0
  221. package/dist/esm/utils/pg.js +175 -0
  222. package/dist/esm/utils/pg.js.map +1 -0
  223. package/dist/esm/utils/pglite.js +80 -0
  224. package/dist/esm/utils/pglite.js.map +1 -0
  225. package/dist/esm/utils/port.js +30 -0
  226. package/dist/esm/utils/port.js.map +1 -0
  227. package/dist/esm/utils/print.js +23 -0
  228. package/dist/esm/utils/print.js.map +1 -0
  229. package/dist/esm/utils/promiseAllSettledWithThrow.js +19 -0
  230. package/dist/esm/utils/promiseAllSettledWithThrow.js.map +1 -0
  231. package/dist/esm/utils/promiseWithResolvers.js +13 -0
  232. package/dist/esm/utils/promiseWithResolvers.js.map +1 -0
  233. package/dist/esm/utils/queue.js +150 -0
  234. package/dist/esm/utils/queue.js.map +1 -0
  235. package/dist/esm/utils/range.js +8 -0
  236. package/dist/esm/utils/range.js.map +1 -0
  237. package/dist/esm/utils/result.js +10 -0
  238. package/dist/esm/utils/result.js.map +1 -0
  239. package/dist/esm/utils/sql-parse.js +1326 -0
  240. package/dist/esm/utils/sql-parse.js.map +1 -0
  241. package/dist/esm/utils/timer.js +9 -0
  242. package/dist/esm/utils/timer.js.map +1 -0
  243. package/dist/esm/utils/truncate.js +15 -0
  244. package/dist/esm/utils/truncate.js.map +1 -0
  245. package/dist/esm/utils/wait.js +10 -0
  246. package/dist/esm/utils/wait.js.map +1 -0
  247. package/dist/esm/utils/zipper.js +67 -0
  248. package/dist/esm/utils/zipper.js.map +1 -0
  249. package/dist/types/bin/commands/codegen.d.ts +5 -0
  250. package/dist/types/bin/commands/codegen.d.ts.map +1 -0
  251. package/dist/types/bin/commands/createViews.d.ts +8 -0
  252. package/dist/types/bin/commands/createViews.d.ts.map +1 -0
  253. package/dist/types/bin/commands/dev.d.ts +5 -0
  254. package/dist/types/bin/commands/dev.d.ts.map +1 -0
  255. package/dist/types/bin/commands/list.d.ts +5 -0
  256. package/dist/types/bin/commands/list.d.ts.map +1 -0
  257. package/dist/types/bin/commands/prune.d.ts +5 -0
  258. package/dist/types/bin/commands/prune.d.ts.map +1 -0
  259. package/dist/types/bin/commands/serve.d.ts +5 -0
  260. package/dist/types/bin/commands/serve.d.ts.map +1 -0
  261. package/dist/types/bin/commands/start.d.ts +19 -0
  262. package/dist/types/bin/commands/start.d.ts.map +1 -0
  263. package/dist/types/bin/isolatedController.d.ts +13 -0
  264. package/dist/types/bin/isolatedController.d.ts.map +1 -0
  265. package/dist/types/bin/isolatedWorker.d.ts +9 -0
  266. package/dist/types/bin/isolatedWorker.d.ts.map +1 -0
  267. package/dist/types/bin/ponder.d.ts +37 -0
  268. package/dist/types/bin/ponder.d.ts.map +1 -0
  269. package/dist/types/bin/utils/codegen.d.ts +6 -0
  270. package/dist/types/bin/utils/codegen.d.ts.map +1 -0
  271. package/dist/types/bin/utils/exit.d.ts +10 -0
  272. package/dist/types/bin/utils/exit.d.ts.map +1 -0
  273. package/dist/types/build/config.d.ts +97 -0
  274. package/dist/types/build/config.d.ts.map +1 -0
  275. package/dist/types/build/factory.d.ts +15 -0
  276. package/dist/types/build/factory.d.ts.map +1 -0
  277. package/dist/types/build/index.d.ts +84 -0
  278. package/dist/types/build/index.d.ts.map +1 -0
  279. package/dist/types/build/plugin.d.ts +4 -0
  280. package/dist/types/build/plugin.d.ts.map +1 -0
  281. package/dist/types/build/pre.d.ts +29 -0
  282. package/dist/types/build/pre.d.ts.map +1 -0
  283. package/dist/types/build/schema.d.ts +20 -0
  284. package/dist/types/build/schema.d.ts.map +1 -0
  285. package/dist/types/build/stacktrace.d.ts +13 -0
  286. package/dist/types/build/stacktrace.d.ts.map +1 -0
  287. package/dist/types/client/index.d.ts +27 -0
  288. package/dist/types/client/index.d.ts.map +1 -0
  289. package/dist/types/config/address.d.ts +34 -0
  290. package/dist/types/config/address.d.ts.map +1 -0
  291. package/dist/types/config/eventFilter.d.ts +18 -0
  292. package/dist/types/config/eventFilter.d.ts.map +1 -0
  293. package/dist/types/config/index.d.ts +144 -0
  294. package/dist/types/config/index.d.ts.map +1 -0
  295. package/dist/types/config/utilityTypes.d.ts +43 -0
  296. package/dist/types/config/utilityTypes.d.ts.map +1 -0
  297. package/dist/types/database/actions.d.ts +99 -0
  298. package/dist/types/database/actions.d.ts.map +1 -0
  299. package/dist/types/database/index.d.ts +493 -0
  300. package/dist/types/database/index.d.ts.map +1 -0
  301. package/dist/types/database/queryBuilder.d.ts +65 -0
  302. package/dist/types/database/queryBuilder.d.ts.map +1 -0
  303. package/dist/types/drizzle/bigint.d.ts +25 -0
  304. package/dist/types/drizzle/bigint.d.ts.map +1 -0
  305. package/dist/types/drizzle/bytes.d.ts +31 -0
  306. package/dist/types/drizzle/bytes.d.ts.map +1 -0
  307. package/dist/types/drizzle/hex.d.ts +25 -0
  308. package/dist/types/drizzle/hex.d.ts.map +1 -0
  309. package/dist/types/drizzle/index.d.ts +6 -0
  310. package/dist/types/drizzle/index.d.ts.map +1 -0
  311. package/dist/types/drizzle/json.d.ts +51 -0
  312. package/dist/types/drizzle/json.d.ts.map +1 -0
  313. package/dist/types/drizzle/kit/index.d.ts +187 -0
  314. package/dist/types/drizzle/kit/index.d.ts.map +1 -0
  315. package/dist/types/drizzle/onchain.d.ts +298 -0
  316. package/dist/types/drizzle/onchain.d.ts.map +1 -0
  317. package/dist/types/drizzle/text.d.ts +29 -0
  318. package/dist/types/drizzle/text.d.ts.map +1 -0
  319. package/dist/types/graphql/graphiql.html.d.ts +2 -0
  320. package/dist/types/graphql/graphiql.html.d.ts.map +1 -0
  321. package/dist/types/graphql/index.d.ts +12 -0
  322. package/dist/types/graphql/index.d.ts.map +1 -0
  323. package/dist/types/graphql/json.d.ts +3 -0
  324. package/dist/types/graphql/json.d.ts.map +1 -0
  325. package/dist/types/graphql/middleware.d.ts +29 -0
  326. package/dist/types/graphql/middleware.d.ts.map +1 -0
  327. package/dist/types/index.d.ts +23 -0
  328. package/dist/types/index.d.ts.map +1 -0
  329. package/dist/types/indexing/addStackTrace.d.ts +3 -0
  330. package/dist/types/indexing/addStackTrace.d.ts.map +1 -0
  331. package/dist/types/indexing/client.d.ts +154 -0
  332. package/dist/types/indexing/client.d.ts.map +1 -0
  333. package/dist/types/indexing/index.d.ts +72 -0
  334. package/dist/types/indexing/index.d.ts.map +1 -0
  335. package/dist/types/indexing/profile.d.ts +16 -0
  336. package/dist/types/indexing/profile.d.ts.map +1 -0
  337. package/dist/types/indexing-store/cache.d.ts +115 -0
  338. package/dist/types/indexing-store/cache.d.ts.map +1 -0
  339. package/dist/types/indexing-store/index.d.ts +24 -0
  340. package/dist/types/indexing-store/index.d.ts.map +1 -0
  341. package/dist/types/indexing-store/profile.d.ts +7 -0
  342. package/dist/types/indexing-store/profile.d.ts.map +1 -0
  343. package/dist/types/indexing-store/utils.d.ts +19 -0
  344. package/dist/types/indexing-store/utils.d.ts.map +1 -0
  345. package/dist/types/internal/common.d.ts +15 -0
  346. package/dist/types/internal/common.d.ts.map +1 -0
  347. package/dist/types/internal/errors.d.ts +101 -0
  348. package/dist/types/internal/errors.d.ts.map +1 -0
  349. package/dist/types/internal/logger.d.ts +37 -0
  350. package/dist/types/internal/logger.d.ts.map +1 -0
  351. package/dist/types/internal/metrics.d.ts +120 -0
  352. package/dist/types/internal/metrics.d.ts.map +1 -0
  353. package/dist/types/internal/options.d.ts +62 -0
  354. package/dist/types/internal/options.d.ts.map +1 -0
  355. package/dist/types/internal/shutdown.d.ts +8 -0
  356. package/dist/types/internal/shutdown.d.ts.map +1 -0
  357. package/dist/types/internal/telemetry.d.ts +43 -0
  358. package/dist/types/internal/telemetry.d.ts.map +1 -0
  359. package/dist/types/internal/types.d.ts +443 -0
  360. package/dist/types/internal/types.d.ts.map +1 -0
  361. package/dist/types/rpc/actions.d.ts +360 -0
  362. package/dist/types/rpc/actions.d.ts.map +1 -0
  363. package/dist/types/rpc/http.d.ts +17 -0
  364. package/dist/types/rpc/http.d.ts.map +1 -0
  365. package/dist/types/rpc/index.d.ts +43 -0
  366. package/dist/types/rpc/index.d.ts.map +1 -0
  367. package/dist/types/runtime/events.d.ts +40 -0
  368. package/dist/types/runtime/events.d.ts.map +1 -0
  369. package/dist/types/runtime/filter.d.ts +96 -0
  370. package/dist/types/runtime/filter.d.ts.map +1 -0
  371. package/dist/types/runtime/fragments.d.ts +30 -0
  372. package/dist/types/runtime/fragments.d.ts.map +1 -0
  373. package/dist/types/runtime/historical.d.ts +123 -0
  374. package/dist/types/runtime/historical.d.ts.map +1 -0
  375. package/dist/types/runtime/index.d.ts +89 -0
  376. package/dist/types/runtime/index.d.ts.map +1 -0
  377. package/dist/types/runtime/init.d.ts +28 -0
  378. package/dist/types/runtime/init.d.ts.map +1 -0
  379. package/dist/types/runtime/isolated.d.ts +14 -0
  380. package/dist/types/runtime/isolated.d.ts.map +1 -0
  381. package/dist/types/runtime/multichain.d.ts +13 -0
  382. package/dist/types/runtime/multichain.d.ts.map +1 -0
  383. package/dist/types/runtime/omnichain.d.ts +23 -0
  384. package/dist/types/runtime/omnichain.d.ts.map +1 -0
  385. package/dist/types/runtime/realtime.d.ts +93 -0
  386. package/dist/types/runtime/realtime.d.ts.map +1 -0
  387. package/dist/types/server/error.d.ts +5 -0
  388. package/dist/types/server/error.d.ts.map +1 -0
  389. package/dist/types/server/index.d.ts +13 -0
  390. package/dist/types/server/index.d.ts.map +1 -0
  391. package/dist/types/sync-historical/index.d.ts +36 -0
  392. package/dist/types/sync-historical/index.d.ts.map +1 -0
  393. package/dist/types/sync-realtime/bloom.d.ts +18 -0
  394. package/dist/types/sync-realtime/bloom.d.ts.map +1 -0
  395. package/dist/types/sync-realtime/index.d.ts +48 -0
  396. package/dist/types/sync-realtime/index.d.ts.map +1 -0
  397. package/dist/types/sync-store/encode.d.ts +25 -0
  398. package/dist/types/sync-store/encode.d.ts.map +1 -0
  399. package/dist/types/sync-store/index.d.ts +135 -0
  400. package/dist/types/sync-store/index.d.ts.map +1 -0
  401. package/dist/types/sync-store/migrations.d.ts +8 -0
  402. package/dist/types/sync-store/migrations.d.ts.map +1 -0
  403. package/dist/types/sync-store/schema.d.ts +1828 -0
  404. package/dist/types/sync-store/schema.d.ts.map +1 -0
  405. package/dist/types/types/db.d.ts +213 -0
  406. package/dist/types/types/db.d.ts.map +1 -0
  407. package/dist/types/types/eth.d.ts +196 -0
  408. package/dist/types/types/eth.d.ts.map +1 -0
  409. package/dist/types/types/utils.d.ts +38 -0
  410. package/dist/types/types/utils.d.ts.map +1 -0
  411. package/dist/types/types/virtual.d.ts +99 -0
  412. package/dist/types/types/virtual.d.ts.map +1 -0
  413. package/dist/types/ui/app.d.ts +22 -0
  414. package/dist/types/ui/app.d.ts.map +1 -0
  415. package/dist/types/ui/index.d.ts +5 -0
  416. package/dist/types/ui/index.d.ts.map +1 -0
  417. package/dist/types/ui/patch.d.ts +7 -0
  418. package/dist/types/ui/patch.d.ts.map +1 -0
  419. package/dist/types/utils/abi.d.ts +23 -0
  420. package/dist/types/utils/abi.d.ts.map +1 -0
  421. package/dist/types/utils/bigint.d.ts +15 -0
  422. package/dist/types/utils/bigint.d.ts.map +1 -0
  423. package/dist/types/utils/chains.d.ts +42 -0
  424. package/dist/types/utils/chains.d.ts.map +1 -0
  425. package/dist/types/utils/checkpoint.d.ts +52 -0
  426. package/dist/types/utils/checkpoint.d.ts.map +1 -0
  427. package/dist/types/utils/chunk.d.ts +2 -0
  428. package/dist/types/utils/chunk.d.ts.map +1 -0
  429. package/dist/types/utils/copy.d.ts +16 -0
  430. package/dist/types/utils/copy.d.ts.map +1 -0
  431. package/dist/types/utils/date.d.ts +7 -0
  432. package/dist/types/utils/date.d.ts.map +1 -0
  433. package/dist/types/utils/debug.d.ts +105 -0
  434. package/dist/types/utils/debug.d.ts.map +1 -0
  435. package/dist/types/utils/decodeAbiParameters.d.ts +28 -0
  436. package/dist/types/utils/decodeAbiParameters.d.ts.map +1 -0
  437. package/dist/types/utils/decodeEventLog.d.ts +12 -0
  438. package/dist/types/utils/decodeEventLog.d.ts.map +1 -0
  439. package/dist/types/utils/dedupe.d.ts +20 -0
  440. package/dist/types/utils/dedupe.d.ts.map +1 -0
  441. package/dist/types/utils/duplicates.d.ts +7 -0
  442. package/dist/types/utils/duplicates.d.ts.map +1 -0
  443. package/dist/types/utils/estimate.d.ts +11 -0
  444. package/dist/types/utils/estimate.d.ts.map +1 -0
  445. package/dist/types/utils/finality.d.ts +12 -0
  446. package/dist/types/utils/finality.d.ts.map +1 -0
  447. package/dist/types/utils/format.d.ts +3 -0
  448. package/dist/types/utils/format.d.ts.map +1 -0
  449. package/dist/types/utils/generators.d.ts +42 -0
  450. package/dist/types/utils/generators.d.ts.map +1 -0
  451. package/dist/types/utils/hash.d.ts +11 -0
  452. package/dist/types/utils/hash.d.ts.map +1 -0
  453. package/dist/types/utils/interval.d.ts +53 -0
  454. package/dist/types/utils/interval.d.ts.map +1 -0
  455. package/dist/types/utils/lowercase.d.ts +5 -0
  456. package/dist/types/utils/lowercase.d.ts.map +1 -0
  457. package/dist/types/utils/mutex.d.ts +5 -0
  458. package/dist/types/utils/mutex.d.ts.map +1 -0
  459. package/dist/types/utils/never.d.ts +2 -0
  460. package/dist/types/utils/never.d.ts.map +1 -0
  461. package/dist/types/utils/offset.d.ts +8 -0
  462. package/dist/types/utils/offset.d.ts.map +1 -0
  463. package/dist/types/utils/order.d.ts +2 -0
  464. package/dist/types/utils/order.d.ts.map +1 -0
  465. package/dist/types/utils/partition.d.ts +22 -0
  466. package/dist/types/utils/partition.d.ts.map +1 -0
  467. package/dist/types/utils/pg.d.ts +8 -0
  468. package/dist/types/utils/pg.d.ts.map +1 -0
  469. package/dist/types/utils/pglite.d.ts +25 -0
  470. package/dist/types/utils/pglite.d.ts.map +1 -0
  471. package/dist/types/utils/port.d.ts +5 -0
  472. package/dist/types/utils/port.d.ts.map +1 -0
  473. package/dist/types/utils/print.d.ts +2 -0
  474. package/dist/types/utils/print.d.ts.map +1 -0
  475. package/dist/types/utils/promiseAllSettledWithThrow.d.ts +8 -0
  476. package/dist/types/utils/promiseAllSettledWithThrow.d.ts.map +1 -0
  477. package/dist/types/utils/promiseWithResolvers.d.ts +10 -0
  478. package/dist/types/utils/promiseWithResolvers.d.ts.map +1 -0
  479. package/dist/types/utils/queue.d.ts +33 -0
  480. package/dist/types/utils/queue.d.ts.map +1 -0
  481. package/dist/types/utils/range.d.ts +8 -0
  482. package/dist/types/utils/range.d.ts.map +1 -0
  483. package/dist/types/utils/result.d.ts +17 -0
  484. package/dist/types/utils/result.d.ts.map +1 -0
  485. package/dist/types/utils/sql-parse.d.ts +21 -0
  486. package/dist/types/utils/sql-parse.d.ts.map +1 -0
  487. package/dist/types/utils/timer.d.ts +6 -0
  488. package/dist/types/utils/timer.d.ts.map +1 -0
  489. package/dist/types/utils/truncate.d.ts +9 -0
  490. package/dist/types/utils/truncate.d.ts.map +1 -0
  491. package/dist/types/utils/wait.d.ts +6 -0
  492. package/dist/types/utils/wait.d.ts.map +1 -0
  493. package/dist/types/utils/zipper.d.ts +36 -0
  494. package/dist/types/utils/zipper.d.ts.map +1 -0
  495. package/package.json +114 -0
  496. package/src/bin/commands/codegen.ts +56 -0
  497. package/src/bin/commands/createViews.ts +318 -0
  498. package/src/bin/commands/dev.ts +490 -0
  499. package/src/bin/commands/list.ts +208 -0
  500. package/src/bin/commands/prune.ts +322 -0
  501. package/src/bin/commands/serve.ts +236 -0
  502. package/src/bin/commands/start.ts +319 -0
  503. package/src/bin/isolatedController.ts +300 -0
  504. package/src/bin/isolatedWorker.ts +192 -0
  505. package/src/bin/ponder.ts +208 -0
  506. package/src/bin/utils/codegen.ts +32 -0
  507. package/src/bin/utils/exit.ts +112 -0
  508. package/src/build/config.ts +1141 -0
  509. package/src/build/factory.ts +147 -0
  510. package/src/build/index.ts +790 -0
  511. package/src/build/plugin.ts +58 -0
  512. package/src/build/pre.ts +114 -0
  513. package/src/build/schema.ts +358 -0
  514. package/src/build/stacktrace.ts +137 -0
  515. package/src/client/index.ts +551 -0
  516. package/src/config/address.ts +45 -0
  517. package/src/config/eventFilter.ts +33 -0
  518. package/src/config/index.ts +240 -0
  519. package/src/config/utilityTypes.ts +152 -0
  520. package/src/database/actions.ts +873 -0
  521. package/src/database/index.ts +1029 -0
  522. package/src/database/queryBuilder.ts +537 -0
  523. package/src/drizzle/bigint.ts +57 -0
  524. package/src/drizzle/bytes.ts +68 -0
  525. package/src/drizzle/hex.ts +58 -0
  526. package/src/drizzle/index.ts +40 -0
  527. package/src/drizzle/json.ts +159 -0
  528. package/src/drizzle/kit/index.ts +1348 -0
  529. package/src/drizzle/onchain.ts +476 -0
  530. package/src/drizzle/text.ts +77 -0
  531. package/src/graphql/graphiql.html.ts +59 -0
  532. package/src/graphql/index.ts +1351 -0
  533. package/src/graphql/json.ts +62 -0
  534. package/src/graphql/middleware.ts +115 -0
  535. package/src/index.ts +139 -0
  536. package/src/indexing/addStackTrace.ts +69 -0
  537. package/src/indexing/client.ts +1184 -0
  538. package/src/indexing/index.ts +976 -0
  539. package/src/indexing/profile.ts +771 -0
  540. package/src/indexing-store/cache.ts +1057 -0
  541. package/src/indexing-store/index.ts +628 -0
  542. package/src/indexing-store/profile.ts +557 -0
  543. package/src/indexing-store/utils.ts +162 -0
  544. package/src/internal/common.ts +15 -0
  545. package/src/internal/errors.ts +228 -0
  546. package/src/internal/logger.ts +252 -0
  547. package/src/internal/metrics.ts +1030 -0
  548. package/src/internal/options.ts +130 -0
  549. package/src/internal/shutdown.ts +32 -0
  550. package/src/internal/telemetry.ts +303 -0
  551. package/src/internal/types.ts +611 -0
  552. package/src/rpc/actions.ts +1344 -0
  553. package/src/rpc/http.ts +164 -0
  554. package/src/rpc/index.ts +959 -0
  555. package/src/runtime/events.ts +875 -0
  556. package/src/runtime/filter.ts +705 -0
  557. package/src/runtime/fragments.ts +674 -0
  558. package/src/runtime/historical.ts +1522 -0
  559. package/src/runtime/index.ts +569 -0
  560. package/src/runtime/init.ts +49 -0
  561. package/src/runtime/isolated.ts +775 -0
  562. package/src/runtime/multichain.ts +860 -0
  563. package/src/runtime/omnichain.ts +920 -0
  564. package/src/runtime/realtime.ts +1164 -0
  565. package/src/server/error.ts +68 -0
  566. package/src/server/index.ts +173 -0
  567. package/src/sync-historical/index.ts +1065 -0
  568. package/src/sync-realtime/bloom.ts +102 -0
  569. package/src/sync-realtime/index.ts +1304 -0
  570. package/src/sync-store/encode.ts +153 -0
  571. package/src/sync-store/index.ts +1633 -0
  572. package/src/sync-store/migrations.ts +1801 -0
  573. package/src/sync-store/schema.ts +248 -0
  574. package/src/types/db.ts +292 -0
  575. package/src/types/eth.ts +216 -0
  576. package/src/types/utils.ts +47 -0
  577. package/src/types/virtual.ts +244 -0
  578. package/src/types.d.ts +38 -0
  579. package/src/ui/app.ts +207 -0
  580. package/src/ui/index.ts +37 -0
  581. package/src/ui/patch.ts +204 -0
  582. package/src/utils/abi.ts +103 -0
  583. package/src/utils/bigint.ts +41 -0
  584. package/src/utils/chains.ts +22 -0
  585. package/src/utils/checkpoint.ts +203 -0
  586. package/src/utils/chunk.ts +7 -0
  587. package/src/utils/copy.ts +151 -0
  588. package/src/utils/date.ts +26 -0
  589. package/src/utils/debug.ts +110 -0
  590. package/src/utils/decodeAbiParameters.ts +428 -0
  591. package/src/utils/decodeEventLog.ts +100 -0
  592. package/src/utils/dedupe.ts +32 -0
  593. package/src/utils/duplicates.ts +19 -0
  594. package/src/utils/estimate.ts +27 -0
  595. package/src/utils/finality.ts +40 -0
  596. package/src/utils/format.ts +22 -0
  597. package/src/utils/generators.ts +157 -0
  598. package/src/utils/hash.ts +22 -0
  599. package/src/utils/interval.ts +212 -0
  600. package/src/utils/lowercase.ts +6 -0
  601. package/src/utils/mutex.ts +33 -0
  602. package/src/utils/never.ts +3 -0
  603. package/src/utils/offset.ts +133 -0
  604. package/src/utils/order.ts +16 -0
  605. package/src/utils/partition.ts +53 -0
  606. package/src/utils/pg.ts +230 -0
  607. package/src/utils/pglite.ts +97 -0
  608. package/src/utils/port.ts +34 -0
  609. package/src/utils/print.ts +31 -0
  610. package/src/utils/promiseAllSettledWithThrow.ts +27 -0
  611. package/src/utils/promiseWithResolvers.ts +20 -0
  612. package/src/utils/queue.ts +258 -0
  613. package/src/utils/range.ts +8 -0
  614. package/src/utils/result.ts +26 -0
  615. package/src/utils/sql-parse.ts +1477 -0
  616. package/src/utils/timer.ts +8 -0
  617. package/src/utils/truncate.ts +15 -0
  618. package/src/utils/wait.ts +8 -0
  619. package/src/utils/zipper.ts +80 -0
@@ -0,0 +1,216 @@
1
+ import type { AccessList, Address, Hash, Hex, TransactionType } from "viem";
2
+ import type { Prettify } from "./utils.js";
3
+
4
+ /**
5
+ * A confirmed Ethereum block.
6
+ *
7
+ * @link https://docs.soliditylang.org/en/v0.8.20/introduction-to-smart-contracts.html#blocks
8
+ */
9
+ export type Block = {
10
+ /** Base fee per gas */
11
+ baseFeePerGas: bigint | null;
12
+ /** Difficulty for this block */
13
+ difficulty: bigint;
14
+ /** "Extra data" field of this block */
15
+ extraData: Hex;
16
+ /** Maximum gas allowed in this block */
17
+ gasLimit: bigint;
18
+ /** Total used gas by all transactions in this block */
19
+ gasUsed: bigint;
20
+ /** Block hash */
21
+ hash: Hash;
22
+ /** Logs bloom filter */
23
+ logsBloom: Hex;
24
+ /** Address that received this block’s mining rewards */
25
+ miner: Address;
26
+ /** Unique identifier for the block. */
27
+ mixHash: Hash | null;
28
+ /** Proof-of-work hash */
29
+ nonce: Hex | null;
30
+ /** Block number */
31
+ number: bigint;
32
+ /** Parent block hash */
33
+ parentHash: Hash;
34
+ /** Root of the this block’s receipts trie */
35
+ receiptsRoot: Hex;
36
+ /** SHA3 of the uncles data in this block */
37
+ sha3Uncles: Hash | null;
38
+ /** Size of this block in bytes */
39
+ size: bigint;
40
+ /** Root of this block’s final state trie */
41
+ stateRoot: Hash;
42
+ /** Unix timestamp of when this block was collated */
43
+ timestamp: bigint;
44
+ /** Total difficulty of the chain until this block */
45
+ totalDifficulty: bigint | null;
46
+ /** Root of this block’s transaction trie */
47
+ transactionsRoot: Hash;
48
+ };
49
+
50
+ /**
51
+ * A confirmed Ethereum transaction. Contains `legacy`, `EIP-1559`, or `EIP-2930` fee values depending on the transaction `type`.
52
+ *
53
+ * @link https://docs.soliditylang.org/en/v0.8.20/introduction-to-smart-contracts.html#transactions
54
+ */
55
+ export type Transaction = Prettify<
56
+ {
57
+ /** Transaction sender */
58
+ from: Address;
59
+ /** Gas provided for transaction execution */
60
+ gas: bigint;
61
+ /** Hash of this transaction */
62
+ hash: Hash;
63
+ /** Contract code or a hashed method call */
64
+ input: Hex;
65
+ /** Unique number identifying this transaction */
66
+ nonce: number;
67
+ /** ECDSA signature r */
68
+ r: Hex | null;
69
+ /** ECDSA signature s */
70
+ s: Hex | null;
71
+ /** Transaction recipient or `null` if deploying a contract */
72
+ to: Address | null;
73
+ /** Index of this transaction in the block */
74
+ transactionIndex: number;
75
+ /** ECDSA recovery ID */
76
+ v: bigint | null;
77
+ /** Value in wei sent with this transaction */
78
+ value: bigint;
79
+ } & (
80
+ | {
81
+ /** Transaction type. */
82
+ type: "legacy";
83
+ accessList?: never;
84
+ /** Base fee per gas. Only present in legacy and EIP-2930 transactions. */
85
+ gasPrice: bigint;
86
+ maxFeePerGas?: never;
87
+ maxPriorityFeePerGas?: never;
88
+ }
89
+ | {
90
+ /** Transaction type. */
91
+ type: "eip2930";
92
+ /** List of addresses and storage keys the transaction will access. */
93
+ accessList: AccessList;
94
+ /** Base fee per gas. Only present in legacy and EIP-2930 transactions. */
95
+ gasPrice: bigint;
96
+ maxFeePerGas?: never;
97
+ maxPriorityFeePerGas?: never;
98
+ }
99
+ | {
100
+ /** Transaction type. */
101
+ type: "eip1559";
102
+ accessList?: never;
103
+ gasPrice?: never;
104
+ /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). Only present in EIP-1559 transactions. */
105
+ maxFeePerGas: bigint;
106
+ /** Max priority fee per gas (in wei). Only present in EIP-1559 transactions. */
107
+ maxPriorityFeePerGas: bigint;
108
+ }
109
+ | {
110
+ /** Transaction type. */
111
+ type: "deposit";
112
+ accessList?: never;
113
+ gasPrice?: never;
114
+ /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). Only present in EIP-1559 transactions. */
115
+ maxFeePerGas?: bigint;
116
+ /** Max priority fee per gas (in wei). Only present in EIP-1559 transactions. */
117
+ maxPriorityFeePerGas?: bigint;
118
+ }
119
+ | {
120
+ /** Transaction type. */
121
+ type: Hex;
122
+ gasPrice?: never;
123
+ accessList?: never;
124
+ maxFeePerGas?: never;
125
+ maxPriorityFeePerGas?: never;
126
+ }
127
+ )
128
+ >;
129
+
130
+ /**
131
+ * A confirmed Ethereum log.
132
+ *
133
+ * @link https://docs.soliditylang.org/en/v0.8.20/abi-spec.html#events
134
+ */
135
+ export type Log = {
136
+ /** The address from which this log originated */
137
+ address: Address;
138
+ /** Contains the non-indexed arguments of the log */
139
+ data: Hex;
140
+ /** Index of this log within its block */
141
+ logIndex: number;
142
+ /**
143
+ * Indicates if this log was removed in a chain reorganization.
144
+ *
145
+ * Ponder automatically handles reorgs, so this will always be `false`.
146
+ */
147
+ removed: boolean;
148
+ /** List of order-dependent topics */
149
+ topics: [Hex, ...Hex[]] | [];
150
+ };
151
+
152
+ /** A confirmed Ethereum transaction receipt. */
153
+ export type TransactionReceipt = {
154
+ /** Address of new contract or `null` if no contract was created */
155
+ contractAddress: Address | null;
156
+ /** Gas used by this and all preceding transactions in this block */
157
+ cumulativeGasUsed: bigint;
158
+ /** Pre-London, it is equal to the transaction's gasPrice. Post-London, it is equal to the actual gas price paid for inclusion. */
159
+ effectiveGasPrice: bigint;
160
+ /** Transaction sender */
161
+ from: Address;
162
+ /** Gas used by this transaction */
163
+ gasUsed: bigint;
164
+ /** Logs bloom filter */
165
+ logsBloom: Hex;
166
+ /** `success` if this transaction was successful or `reverted` if it failed */
167
+ status: "success" | "reverted";
168
+ /** Transaction recipient or `null` if deploying a contract */
169
+ to: Address | null;
170
+ /** Transaction type */
171
+ type: TransactionType;
172
+ };
173
+
174
+ export type Trace = {
175
+ /** The type of the call. */
176
+ type:
177
+ | "CALL"
178
+ | "CALLCODE"
179
+ | "DELEGATECALL"
180
+ | "STATICCALL"
181
+ | "CREATE"
182
+ | "CREATE2"
183
+ | "SELFDESTRUCT";
184
+ /** The address of that initiated the call. */
185
+ from: Address;
186
+ /** The address of the contract that was called. */
187
+ to: Address | null;
188
+ /** How much gas was left before the call. */
189
+ gas: bigint;
190
+ /** How much gas was used by the call. */
191
+ gasUsed: bigint;
192
+ /** Calldata input. */
193
+ input: Hex;
194
+ /** Output of the call, if any. */
195
+ output?: Hex;
196
+ /** Error message, if any. */
197
+ error?: string;
198
+ /** Why this call reverted, if it reverted. */
199
+ revertReason?: string;
200
+ /** Value transferred. */
201
+ value: bigint | null;
202
+ /** Index of this trace in the transaction. */
203
+ traceIndex: number;
204
+ /** Number of subcalls. */
205
+ subcalls: number;
206
+ };
207
+
208
+ /** A native token transfer. */
209
+ export type Transfer = {
210
+ /** The address that sent the transfer */
211
+ from: Address;
212
+ /** The address that received the transfer */
213
+ to: Address;
214
+ /** The amount of tokens transferred */
215
+ value: bigint;
216
+ };
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @description Combines members of an intersection into a readable type.
3
+ *
4
+ * @link https://twitter.com/mattpocockuk/status/1622730173446557697?s=20&t=NdpAcmEFXY01xkqU3KO0Mg
5
+ * @example
6
+ * Prettify<{ a: string } | { b: string } | { c: number, d: bigint }>
7
+ * => { a: string, b: string, c: number, d: bigint }
8
+ */
9
+ export type Prettify<T> = {
10
+ [K in keyof T]: T[K];
11
+ } & {};
12
+
13
+ /**
14
+ * @description Creates a type with all keys K from T as non-null.
15
+ */
16
+ export type NonNull<T> = {
17
+ [P in keyof T]-?: NonNullable<T[P]>;
18
+ };
19
+
20
+ export type PonderTypeError<error extends string> = error;
21
+
22
+ export type DeepPartial<T> = {
23
+ [P in keyof T]?: T[P] extends (infer U)[]
24
+ ? DeepPartial<U>[]
25
+ : T[P] extends object
26
+ ? DeepPartial<T[P]>
27
+ : T[P];
28
+ };
29
+
30
+ /**
31
+ * @description Creates a partial type with the selected keys required.
32
+ *
33
+ * @example
34
+ * type t = PartialExcept<{ a: string, b: boolean }, "a">
35
+ * // ^? t: { a: string, b?: boolean }
36
+ */
37
+ export type PartialExcept<T, K extends keyof T> = {
38
+ [P in K]: T[P];
39
+ } & {
40
+ [P in keyof Omit<T, K>]?: T[P];
41
+ };
42
+
43
+ /**
44
+ * @description Marks a property of an object as optional.
45
+ */
46
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> &
47
+ Partial<Pick<T, K>>;
@@ -0,0 +1,244 @@
1
+ import type { Config } from "@/config/index.js";
2
+ import type {
3
+ FormatEventArgs,
4
+ FormatFunctionArgs,
5
+ FormatFunctionResult,
6
+ SafeEventNames,
7
+ SafeFunctionNames,
8
+ } from "@/config/utilityTypes.js";
9
+ import type { ReadonlyClient } from "@/indexing/client.js";
10
+ import type { Schema } from "@/internal/types.js";
11
+ import type {
12
+ Block,
13
+ Log,
14
+ Trace,
15
+ Transaction,
16
+ TransactionReceipt,
17
+ Transfer,
18
+ } from "@/types/eth.js";
19
+ import type { Db } from "./db.js";
20
+ import type { Prettify } from "./utils.js";
21
+
22
+ export namespace Virtual {
23
+ type Setup = "setup";
24
+
25
+ type _FormatEventNames<
26
+ contract extends Config["contracts"][string],
27
+ ///
28
+ safeEventNames = SafeEventNames<contract["abi"]>,
29
+ > = string extends safeEventNames ? never : safeEventNames;
30
+
31
+ type _FormatFunctionNames<
32
+ contract extends Config["contracts"][string],
33
+ ///
34
+ safeFunctionNames = SafeFunctionNames<contract["abi"]>,
35
+ > = string extends safeFunctionNames ? never : safeFunctionNames;
36
+
37
+ /** "{ContractName}:{EventName}" | "{ContractName}.{FunctionName}()" | "{SourceName}:block" | "{SourceName}:transaction:from" . */
38
+ export type FormatEventNames<
39
+ contracts extends Config["contracts"],
40
+ accounts extends Config["accounts"],
41
+ blocks extends Config["blocks"],
42
+ > =
43
+ | {
44
+ [name in keyof contracts]: `${name & string}:${_FormatEventNames<contracts[name]> | Setup}`;
45
+ }[keyof contracts]
46
+ | {
47
+ [name in keyof accounts]: `${name & string}:${"transaction" | "transfer"}:${"from" | "to"}`;
48
+ }[keyof accounts]
49
+ | {
50
+ [name in keyof blocks]: `${name & string}:block`;
51
+ }[keyof blocks]
52
+ | {
53
+ [name in keyof contracts]: true extends ExtractOverridenProperty<
54
+ contracts[name],
55
+ "includeCallTraces"
56
+ >
57
+ ? `${name & string}.${_FormatFunctionNames<contracts[name]>}`
58
+ : never;
59
+ }[keyof contracts];
60
+
61
+ type FormatTransactionReceipts<
62
+ source extends Config["contracts" | "accounts"][string],
63
+ ///
64
+ includeTxr = ExtractOverridenProperty<source, "includeTransactionReceipts">,
65
+ > = includeTxr extends includeTxr
66
+ ? includeTxr extends true
67
+ ? {
68
+ transactionReceipt: Prettify<TransactionReceipt>;
69
+ }
70
+ : {
71
+ transactionReceipt?: never;
72
+ }
73
+ : never;
74
+
75
+ export type ExtractEventName<name extends string> =
76
+ name extends `${string}:${infer EventName extends string}`
77
+ ? EventName
78
+ : name extends `${string}.${infer EventName extends string}`
79
+ ? EventName
80
+ : never;
81
+
82
+ export type ExtractSourceName<name extends string> =
83
+ name extends `${infer SourceName extends string}:${string}`
84
+ ? SourceName
85
+ : name extends `${infer SourceName extends string}.${string}`
86
+ ? SourceName
87
+ : never;
88
+
89
+ export type EventNames<config extends Config> = FormatEventNames<
90
+ config["contracts"],
91
+ config["accounts"],
92
+ config["blocks"]
93
+ >;
94
+
95
+ export type Event<
96
+ config extends Config,
97
+ name extends EventNames<config>,
98
+ ///
99
+ sourceName extends ExtractSourceName<name> = ExtractSourceName<name>,
100
+ eventName extends ExtractEventName<name> = ExtractEventName<name>,
101
+ > = name extends `${string}:block`
102
+ ? // 1. block event
103
+ {
104
+ id: string;
105
+ block: Prettify<Block>;
106
+ }
107
+ : name extends `${string}:transaction:${"from" | "to"}`
108
+ ? // 2. transaction event
109
+ {
110
+ id: string;
111
+ block: Prettify<Block>;
112
+ transaction: Prettify<Transaction>;
113
+ transactionReceipt: Prettify<TransactionReceipt>;
114
+ }
115
+ : name extends `${string}:transfer:${"from" | "to"}`
116
+ ? // 3. transfer event
117
+ {
118
+ id: string;
119
+ transfer: Prettify<Transfer>;
120
+ block: Prettify<Block>;
121
+ transaction: Prettify<Transaction>;
122
+ trace: Prettify<Trace>;
123
+ } & FormatTransactionReceipts<config["accounts"][sourceName]>
124
+ : name extends `${string}.${string}`
125
+ ? // 4. call trace event
126
+ Prettify<
127
+ {
128
+ id: string;
129
+ args: FormatFunctionArgs<
130
+ config["contracts"][sourceName]["abi"],
131
+ eventName
132
+ >;
133
+ result: FormatFunctionResult<
134
+ config["contracts"][sourceName]["abi"],
135
+ eventName
136
+ >;
137
+ trace: Prettify<Trace>;
138
+ block: Prettify<Block>;
139
+ transaction: Prettify<Transaction>;
140
+ } & FormatTransactionReceipts<config["contracts"][sourceName]>
141
+ >
142
+ : eventName extends Setup
143
+ ? // 5. setup event
144
+ never
145
+ : // 6. log event
146
+ Prettify<
147
+ {
148
+ id: string;
149
+ args: FormatEventArgs<
150
+ config["contracts"][sourceName]["abi"],
151
+ eventName
152
+ >;
153
+ log: Prettify<Log>;
154
+ block: Prettify<Block>;
155
+ transaction: Prettify<Transaction>;
156
+ } & FormatTransactionReceipts<config["contracts"][sourceName]>
157
+ >;
158
+
159
+ type ContextContractProperty = Exclude<
160
+ keyof Config["contracts"][string],
161
+ "abi" | "chain" | "filter" | "factory"
162
+ >;
163
+
164
+ type ExtractOverridenProperty<
165
+ contract extends Config["contracts" | "accounts"][string],
166
+ property extends ContextContractProperty,
167
+ ///
168
+ base = Extract<contract, { [p in property]: unknown }>[property],
169
+ override = Extract<
170
+ contract["chain"][keyof contract["chain"]],
171
+ { [p in property]: unknown }
172
+ >[property],
173
+ > = ([base] extends [never] ? undefined : base) | override;
174
+
175
+ export type Context<
176
+ config extends Config,
177
+ schema extends Schema,
178
+ name extends EventNames<config>,
179
+ ///
180
+ sourceName extends ExtractSourceName<name> = ExtractSourceName<name>,
181
+ sourceChain = sourceName extends sourceName
182
+ ?
183
+ | (unknown extends config["contracts"][sourceName]["chain"]
184
+ ? never
185
+ : config["contracts"][sourceName]["chain"])
186
+ | (unknown extends config["blocks"][sourceName]["chain"]
187
+ ? never
188
+ : config["blocks"][sourceName]["chain"])
189
+ : never,
190
+ > = {
191
+ contracts: {
192
+ [_contractName in keyof config["contracts"]]: {
193
+ abi: config["contracts"][_contractName]["abi"];
194
+ address: ExtractOverridenProperty<
195
+ config["contracts"][_contractName],
196
+ "address"
197
+ >;
198
+ startBlock: ExtractOverridenProperty<
199
+ config["contracts"][_contractName],
200
+ "startBlock"
201
+ >;
202
+ endBlock: ExtractOverridenProperty<
203
+ config["contracts"][_contractName],
204
+ "endBlock"
205
+ >;
206
+ };
207
+ };
208
+ chain: sourceChain extends string
209
+ ? // 1. No chain overriding
210
+ {
211
+ name: sourceChain;
212
+ id: config["chains"][sourceChain]["id"];
213
+ }
214
+ : // 2. Chain overrides
215
+ {
216
+ [key in keyof sourceChain]: {
217
+ name: key;
218
+ id: config["chains"][key & keyof config["chains"]]["id"];
219
+ };
220
+ }[keyof sourceChain];
221
+ client: Prettify<ReadonlyClient>;
222
+ db: Db<schema>;
223
+ };
224
+
225
+ export type IndexingFunctionArgs<
226
+ config extends Config,
227
+ schema extends Schema,
228
+ name extends EventNames<config>,
229
+ > = {
230
+ event: Event<config, name>;
231
+ context: Context<config, schema, name>;
232
+ };
233
+
234
+ export type Registry<config extends Config, schema extends Schema> = {
235
+ on: <name extends EventNames<config>>(
236
+ _name: name,
237
+ indexingFunction: (
238
+ args: { event: Event<config, name> } & {
239
+ context: Prettify<Context<config, schema, name>>;
240
+ },
241
+ ) => Promise<void> | void,
242
+ ) => void;
243
+ };
244
+ }
package/src/types.d.ts ADDED
@@ -0,0 +1,38 @@
1
+ declare module "ponder:registry" {
2
+ import type { Virtual } from "ponder";
3
+ type config = typeof import("ponder:internal").config;
4
+ type schema = typeof import("ponder:internal").schema;
5
+
6
+ export const ponder: Virtual.Registry<config["default"], schema>;
7
+
8
+ export type EventNames = Virtual.EventNames<config["default"]>;
9
+ export type Event<name extends EventNames = EventNames> = Virtual.Event<
10
+ config["default"],
11
+ name
12
+ >;
13
+ export type Context<name extends EventNames = EventNames> = Virtual.Context<
14
+ config["default"],
15
+ schema,
16
+ name
17
+ >;
18
+ export type IndexingFunctionArgs<name extends EventNames = EventNames> =
19
+ Virtual.IndexingFunctionArgs<config["default"], schema, name>;
20
+ }
21
+
22
+ declare module "ponder:schema" {
23
+ const schema: typeof import("ponder:internal").schema;
24
+ export { schema as default };
25
+ }
26
+
27
+ declare module "ponder:api" {
28
+ import type { ReadonlyDrizzle } from "ponder";
29
+ import type { PublicClient } from "viem";
30
+
31
+ type schema = typeof import("ponder:internal").schema;
32
+ type config = typeof import("ponder:internal").config;
33
+
34
+ export const db: ReadonlyDrizzle<schema>;
35
+ export const publicClients: {
36
+ [chainName in keyof config["default"]["chains"]]: PublicClient;
37
+ };
38
+ }