ponder 0.9.5-debug.1 → 0.9.5

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 (462) hide show
  1. package/dist/{types/bin → bin}/ponder.d.ts +6 -5
  2. package/dist/bin/ponder.js +12933 -0
  3. package/dist/bin/ponder.js.map +1 -0
  4. package/dist/chunk-K2TLRLX3.js +163 -0
  5. package/dist/chunk-K2TLRLX3.js.map +1 -0
  6. package/dist/chunk-LHCA5XFV.js +257 -0
  7. package/dist/chunk-LHCA5XFV.js.map +1 -0
  8. package/dist/{types/drizzle → drizzle}/onchain.d.ts +96 -49
  9. package/dist/drizzle/onchain.js +19 -0
  10. package/dist/drizzle/onchain.js.map +1 -0
  11. package/dist/index.d.ts +819 -0
  12. package/dist/index.js +2217 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/utils-ceNucOJb.d.ts +14 -0
  15. package/package.json +17 -17
  16. package/src/bin/commands/dev.ts +1 -1
  17. package/src/bin/ponder.ts +1 -1
  18. package/src/build/configAndIndexingFunctions.ts +1 -1
  19. package/src/build/factory.ts +1 -1
  20. package/src/client/index.ts +1 -1
  21. package/src/indexing-store/historical.ts +1 -1
  22. package/src/indexing-store/realtime.ts +1 -1
  23. package/src/internal/telemetry.ts +1 -1
  24. package/src/sync/fragments.ts +1 -1
  25. package/src/sync-realtime/index.ts +1 -1
  26. package/src/utils/generators.ts +1 -1
  27. package/src/utils/mutex.ts +1 -1
  28. package/src/utils/requestQueue.ts +1 -1
  29. package/CHANGELOG.md +0 -2201
  30. package/dist/esm/bin/commands/codegen.js +0 -37
  31. package/dist/esm/bin/commands/codegen.js.map +0 -1
  32. package/dist/esm/bin/commands/dev.js +0 -242
  33. package/dist/esm/bin/commands/dev.js.map +0 -1
  34. package/dist/esm/bin/commands/list.js +0 -103
  35. package/dist/esm/bin/commands/list.js.map +0 -1
  36. package/dist/esm/bin/commands/serve.js +0 -123
  37. package/dist/esm/bin/commands/serve.js.map +0 -1
  38. package/dist/esm/bin/commands/start.js +0 -136
  39. package/dist/esm/bin/commands/start.js.map +0 -1
  40. package/dist/esm/bin/ponder.js +0 -118
  41. package/dist/esm/bin/ponder.js.map +0 -1
  42. package/dist/esm/bin/utils/codegen.js +0 -26
  43. package/dist/esm/bin/utils/codegen.js.map +0 -1
  44. package/dist/esm/bin/utils/exit.js +0 -69
  45. package/dist/esm/bin/utils/exit.js.map +0 -1
  46. package/dist/esm/bin/utils/run.js +0 -247
  47. package/dist/esm/bin/utils/run.js.map +0 -1
  48. package/dist/esm/bin/utils/runServer.js +0 -8
  49. package/dist/esm/bin/utils/runServer.js.map +0 -1
  50. package/dist/esm/build/configAndIndexingFunctions.js +0 -654
  51. package/dist/esm/build/configAndIndexingFunctions.js.map +0 -1
  52. package/dist/esm/build/factory.js +0 -43
  53. package/dist/esm/build/factory.js.map +0 -1
  54. package/dist/esm/build/index.js +0 -431
  55. package/dist/esm/build/index.js.map +0 -1
  56. package/dist/esm/build/plugin.js +0 -43
  57. package/dist/esm/build/plugin.js.map +0 -1
  58. package/dist/esm/build/pre.js +0 -112
  59. package/dist/esm/build/pre.js.map +0 -1
  60. package/dist/esm/build/schema.js +0 -89
  61. package/dist/esm/build/schema.js.map +0 -1
  62. package/dist/esm/build/stacktrace.js +0 -137
  63. package/dist/esm/build/stacktrace.js.map +0 -1
  64. package/dist/esm/client/index.js +0 -124
  65. package/dist/esm/client/index.js.map +0 -1
  66. package/dist/esm/client/validate.js +0 -1151
  67. package/dist/esm/client/validate.js.map +0 -1
  68. package/dist/esm/config/address.js +0 -2
  69. package/dist/esm/config/address.js.map +0 -1
  70. package/dist/esm/config/eventFilter.js +0 -2
  71. package/dist/esm/config/eventFilter.js.map +0 -1
  72. package/dist/esm/config/index.js +0 -2
  73. package/dist/esm/config/index.js.map +0 -1
  74. package/dist/esm/config/networks.js +0 -120
  75. package/dist/esm/config/networks.js.map +0 -1
  76. package/dist/esm/config/utilityTypes.js +0 -2
  77. package/dist/esm/config/utilityTypes.js.map +0 -1
  78. package/dist/esm/database/index.js +0 -914
  79. package/dist/esm/database/index.js.map +0 -1
  80. package/dist/esm/drizzle/bigint.js +0 -36
  81. package/dist/esm/drizzle/bigint.js.map +0 -1
  82. package/dist/esm/drizzle/hex.js +0 -38
  83. package/dist/esm/drizzle/hex.js.map +0 -1
  84. package/dist/esm/drizzle/index.js +0 -43
  85. package/dist/esm/drizzle/index.js.map +0 -1
  86. package/dist/esm/drizzle/kit/index.js +0 -658
  87. package/dist/esm/drizzle/kit/index.js.map +0 -1
  88. package/dist/esm/drizzle/onchain.js +0 -102
  89. package/dist/esm/drizzle/onchain.js.map +0 -1
  90. package/dist/esm/graphql/index.js +0 -704
  91. package/dist/esm/graphql/index.js.map +0 -1
  92. package/dist/esm/graphql/json.js +0 -42
  93. package/dist/esm/graphql/json.js.map +0 -1
  94. package/dist/esm/graphql/middleware.js +0 -80
  95. package/dist/esm/graphql/middleware.js.map +0 -1
  96. package/dist/esm/index.js +0 -9
  97. package/dist/esm/index.js.map +0 -1
  98. package/dist/esm/indexing/addStackTrace.js +0 -54
  99. package/dist/esm/indexing/addStackTrace.js.map +0 -1
  100. package/dist/esm/indexing/index.js +0 -10
  101. package/dist/esm/indexing/index.js.map +0 -1
  102. package/dist/esm/indexing/ponderActions.js +0 -60
  103. package/dist/esm/indexing/ponderActions.js.map +0 -1
  104. package/dist/esm/indexing/service.js +0 -312
  105. package/dist/esm/indexing/service.js.map +0 -1
  106. package/dist/esm/indexing-store/historical.js +0 -591
  107. package/dist/esm/indexing-store/historical.js.map +0 -1
  108. package/dist/esm/indexing-store/index.js +0 -19
  109. package/dist/esm/indexing-store/index.js.map +0 -1
  110. package/dist/esm/indexing-store/metadata.js +0 -46
  111. package/dist/esm/indexing-store/metadata.js.map +0 -1
  112. package/dist/esm/indexing-store/realtime.js +0 -295
  113. package/dist/esm/indexing-store/realtime.js.map +0 -1
  114. package/dist/esm/internal/common.js +0 -2
  115. package/dist/esm/internal/common.js.map +0 -1
  116. package/dist/esm/internal/errors.js +0 -175
  117. package/dist/esm/internal/errors.js.map +0 -1
  118. package/dist/esm/internal/logger.js +0 -96
  119. package/dist/esm/internal/logger.js.map +0 -1
  120. package/dist/esm/internal/metrics.js +0 -569
  121. package/dist/esm/internal/metrics.js.map +0 -1
  122. package/dist/esm/internal/options.js +0 -69
  123. package/dist/esm/internal/options.js.map +0 -1
  124. package/dist/esm/internal/shutdown.js +0 -18
  125. package/dist/esm/internal/shutdown.js.map +0 -1
  126. package/dist/esm/internal/telemetry.js +0 -199
  127. package/dist/esm/internal/telemetry.js.map +0 -1
  128. package/dist/esm/internal/types.js +0 -2
  129. package/dist/esm/internal/types.js.map +0 -1
  130. package/dist/esm/server/error.js +0 -55
  131. package/dist/esm/server/error.js.map +0 -1
  132. package/dist/esm/server/index.js +0 -107
  133. package/dist/esm/server/index.js.map +0 -1
  134. package/dist/esm/sync/abi.js +0 -67
  135. package/dist/esm/sync/abi.js.map +0 -1
  136. package/dist/esm/sync/events.js +0 -607
  137. package/dist/esm/sync/events.js.map +0 -1
  138. package/dist/esm/sync/filter.js +0 -356
  139. package/dist/esm/sync/filter.js.map +0 -1
  140. package/dist/esm/sync/fragments.js +0 -300
  141. package/dist/esm/sync/fragments.js.map +0 -1
  142. package/dist/esm/sync/index.js +0 -1001
  143. package/dist/esm/sync/index.js.map +0 -1
  144. package/dist/esm/sync/transport.js +0 -94
  145. package/dist/esm/sync/transport.js.map +0 -1
  146. package/dist/esm/sync-historical/index.js +0 -590
  147. package/dist/esm/sync-historical/index.js.map +0 -1
  148. package/dist/esm/sync-realtime/bloom.js +0 -75
  149. package/dist/esm/sync-realtime/bloom.js.map +0 -1
  150. package/dist/esm/sync-realtime/index.js +0 -794
  151. package/dist/esm/sync-realtime/index.js.map +0 -1
  152. package/dist/esm/sync-store/encoding.js +0 -157
  153. package/dist/esm/sync-store/encoding.js.map +0 -1
  154. package/dist/esm/sync-store/index.js +0 -727
  155. package/dist/esm/sync-store/index.js.map +0 -1
  156. package/dist/esm/sync-store/migrations.js +0 -1186
  157. package/dist/esm/sync-store/migrations.js.map +0 -1
  158. package/dist/esm/types/db.js +0 -2
  159. package/dist/esm/types/db.js.map +0 -1
  160. package/dist/esm/types/eth.js +0 -2
  161. package/dist/esm/types/eth.js.map +0 -1
  162. package/dist/esm/types/sync.js +0 -2
  163. package/dist/esm/types/sync.js.map +0 -1
  164. package/dist/esm/types/utils.js +0 -2
  165. package/dist/esm/types/utils.js.map +0 -1
  166. package/dist/esm/types/virtual.js +0 -2
  167. package/dist/esm/types/virtual.js.map +0 -1
  168. package/dist/esm/ui/ProgressBar.js +0 -11
  169. package/dist/esm/ui/ProgressBar.js.map +0 -1
  170. package/dist/esm/ui/Table.js +0 -50
  171. package/dist/esm/ui/Table.js.map +0 -1
  172. package/dist/esm/ui/app.js +0 -113
  173. package/dist/esm/ui/app.js.map +0 -1
  174. package/dist/esm/ui/graphiql.html.js +0 -59
  175. package/dist/esm/ui/graphiql.html.js.map +0 -1
  176. package/dist/esm/ui/index.js +0 -21
  177. package/dist/esm/ui/index.js.map +0 -1
  178. package/dist/esm/utils/bigint.js +0 -37
  179. package/dist/esm/utils/bigint.js.map +0 -1
  180. package/dist/esm/utils/chains.js +0 -3
  181. package/dist/esm/utils/chains.js.map +0 -1
  182. package/dist/esm/utils/checkpoint.js +0 -114
  183. package/dist/esm/utils/checkpoint.js.map +0 -1
  184. package/dist/esm/utils/chunk.js +0 -8
  185. package/dist/esm/utils/chunk.js.map +0 -1
  186. package/dist/esm/utils/date.js +0 -27
  187. package/dist/esm/utils/date.js.map +0 -1
  188. package/dist/esm/utils/debug.js +0 -2
  189. package/dist/esm/utils/debug.js.map +0 -1
  190. package/dist/esm/utils/dedupe.js +0 -33
  191. package/dist/esm/utils/dedupe.js.map +0 -1
  192. package/dist/esm/utils/duplicates.js +0 -19
  193. package/dist/esm/utils/duplicates.js.map +0 -1
  194. package/dist/esm/utils/estimate.js +0 -6
  195. package/dist/esm/utils/estimate.js.map +0 -1
  196. package/dist/esm/utils/extend.js +0 -28
  197. package/dist/esm/utils/extend.js.map +0 -1
  198. package/dist/esm/utils/format.js +0 -20
  199. package/dist/esm/utils/format.js.map +0 -1
  200. package/dist/esm/utils/generators.js +0 -77
  201. package/dist/esm/utils/generators.js.map +0 -1
  202. package/dist/esm/utils/hash.js +0 -11
  203. package/dist/esm/utils/hash.js.map +0 -1
  204. package/dist/esm/utils/interval.js +0 -171
  205. package/dist/esm/utils/interval.js.map +0 -1
  206. package/dist/esm/utils/lowercase.js +0 -7
  207. package/dist/esm/utils/lowercase.js.map +0 -1
  208. package/dist/esm/utils/mutex.js +0 -25
  209. package/dist/esm/utils/mutex.js.map +0 -1
  210. package/dist/esm/utils/never.js +0 -4
  211. package/dist/esm/utils/never.js.map +0 -1
  212. package/dist/esm/utils/offset.js +0 -73
  213. package/dist/esm/utils/offset.js.map +0 -1
  214. package/dist/esm/utils/order.js +0 -18
  215. package/dist/esm/utils/order.js.map +0 -1
  216. package/dist/esm/utils/partition.js +0 -37
  217. package/dist/esm/utils/partition.js.map +0 -1
  218. package/dist/esm/utils/pg.js +0 -126
  219. package/dist/esm/utils/pg.js.map +0 -1
  220. package/dist/esm/utils/pglite.js +0 -80
  221. package/dist/esm/utils/pglite.js.map +0 -1
  222. package/dist/esm/utils/port.js +0 -30
  223. package/dist/esm/utils/port.js.map +0 -1
  224. package/dist/esm/utils/print.js +0 -23
  225. package/dist/esm/utils/print.js.map +0 -1
  226. package/dist/esm/utils/promiseWithResolvers.js +0 -13
  227. package/dist/esm/utils/promiseWithResolvers.js.map +0 -1
  228. package/dist/esm/utils/queue.js +0 -145
  229. package/dist/esm/utils/queue.js.map +0 -1
  230. package/dist/esm/utils/range.js +0 -8
  231. package/dist/esm/utils/range.js.map +0 -1
  232. package/dist/esm/utils/requestQueue.js +0 -127
  233. package/dist/esm/utils/requestQueue.js.map +0 -1
  234. package/dist/esm/utils/result.js +0 -10
  235. package/dist/esm/utils/result.js.map +0 -1
  236. package/dist/esm/utils/rpc.js +0 -202
  237. package/dist/esm/utils/rpc.js.map +0 -1
  238. package/dist/esm/utils/serialize.js +0 -23
  239. package/dist/esm/utils/serialize.js.map +0 -1
  240. package/dist/esm/utils/timer.js +0 -17
  241. package/dist/esm/utils/timer.js.map +0 -1
  242. package/dist/esm/utils/wait.js +0 -8
  243. package/dist/esm/utils/wait.js.map +0 -1
  244. package/dist/esm/utils/zipper.js +0 -67
  245. package/dist/esm/utils/zipper.js.map +0 -1
  246. package/dist/types/bin/commands/codegen.d.ts +0 -5
  247. package/dist/types/bin/commands/codegen.d.ts.map +0 -1
  248. package/dist/types/bin/commands/dev.d.ts +0 -5
  249. package/dist/types/bin/commands/dev.d.ts.map +0 -1
  250. package/dist/types/bin/commands/list.d.ts +0 -5
  251. package/dist/types/bin/commands/list.d.ts.map +0 -1
  252. package/dist/types/bin/commands/serve.d.ts +0 -5
  253. package/dist/types/bin/commands/serve.d.ts.map +0 -1
  254. package/dist/types/bin/commands/start.d.ts +0 -5
  255. package/dist/types/bin/commands/start.d.ts.map +0 -1
  256. package/dist/types/bin/ponder.d.ts.map +0 -1
  257. package/dist/types/bin/utils/codegen.d.ts +0 -6
  258. package/dist/types/bin/utils/codegen.d.ts.map +0 -1
  259. package/dist/types/bin/utils/exit.d.ts +0 -9
  260. package/dist/types/bin/utils/exit.d.ts.map +0 -1
  261. package/dist/types/bin/utils/run.d.ts +0 -14
  262. package/dist/types/bin/utils/run.d.ts.map +0 -1
  263. package/dist/types/bin/utils/runServer.d.ts +0 -12
  264. package/dist/types/bin/utils/runServer.d.ts.map +0 -1
  265. package/dist/types/build/configAndIndexingFunctions.d.ts +0 -37
  266. package/dist/types/build/configAndIndexingFunctions.d.ts.map +0 -1
  267. package/dist/types/build/factory.d.ts +0 -10
  268. package/dist/types/build/factory.d.ts.map +0 -1
  269. package/dist/types/build/index.d.ts +0 -70
  270. package/dist/types/build/index.d.ts.map +0 -1
  271. package/dist/types/build/plugin.d.ts +0 -4
  272. package/dist/types/build/plugin.d.ts.map +0 -1
  273. package/dist/types/build/pre.d.ts +0 -35
  274. package/dist/types/build/pre.d.ts.map +0 -1
  275. package/dist/types/build/schema.d.ts +0 -18
  276. package/dist/types/build/schema.d.ts.map +0 -1
  277. package/dist/types/build/stacktrace.d.ts +0 -13
  278. package/dist/types/build/stacktrace.d.ts.map +0 -1
  279. package/dist/types/client/index.d.ts +0 -27
  280. package/dist/types/client/index.d.ts.map +0 -1
  281. package/dist/types/client/validate.d.ts +0 -2
  282. package/dist/types/client/validate.d.ts.map +0 -1
  283. package/dist/types/config/address.d.ts +0 -14
  284. package/dist/types/config/address.d.ts.map +0 -1
  285. package/dist/types/config/eventFilter.d.ts +0 -18
  286. package/dist/types/config/eventFilter.d.ts.map +0 -1
  287. package/dist/types/config/index.d.ts +0 -143
  288. package/dist/types/config/index.d.ts.map +0 -1
  289. package/dist/types/config/networks.d.ts +0 -30
  290. package/dist/types/config/networks.d.ts.map +0 -1
  291. package/dist/types/config/utilityTypes.d.ts +0 -43
  292. package/dist/types/config/utilityTypes.d.ts.map +0 -1
  293. package/dist/types/database/index.d.ts +0 -91
  294. package/dist/types/database/index.d.ts.map +0 -1
  295. package/dist/types/drizzle/bigint.d.ts +0 -25
  296. package/dist/types/drizzle/bigint.d.ts.map +0 -1
  297. package/dist/types/drizzle/hex.d.ts +0 -25
  298. package/dist/types/drizzle/hex.d.ts.map +0 -1
  299. package/dist/types/drizzle/index.d.ts +0 -14
  300. package/dist/types/drizzle/index.d.ts.map +0 -1
  301. package/dist/types/drizzle/kit/index.d.ts +0 -49
  302. package/dist/types/drizzle/kit/index.d.ts.map +0 -1
  303. package/dist/types/drizzle/onchain.d.ts.map +0 -1
  304. package/dist/types/graphql/index.d.ts +0 -14
  305. package/dist/types/graphql/index.d.ts.map +0 -1
  306. package/dist/types/graphql/json.d.ts +0 -3
  307. package/dist/types/graphql/json.d.ts.map +0 -1
  308. package/dist/types/graphql/middleware.d.ts +0 -29
  309. package/dist/types/graphql/middleware.d.ts.map +0 -1
  310. package/dist/types/index.d.ts +0 -18
  311. package/dist/types/index.d.ts.map +0 -1
  312. package/dist/types/indexing/addStackTrace.d.ts +0 -3
  313. package/dist/types/indexing/addStackTrace.d.ts.map +0 -1
  314. package/dist/types/indexing/index.d.ts +0 -575
  315. package/dist/types/indexing/index.d.ts.map +0 -1
  316. package/dist/types/indexing/ponderActions.d.ts +0 -47
  317. package/dist/types/indexing/ponderActions.d.ts.map +0 -1
  318. package/dist/types/indexing/service.d.ts +0 -73
  319. package/dist/types/indexing/service.d.ts.map +0 -1
  320. package/dist/types/indexing-store/historical.d.ts +0 -19
  321. package/dist/types/indexing-store/historical.d.ts.map +0 -1
  322. package/dist/types/indexing-store/index.d.ts +0 -10
  323. package/dist/types/indexing-store/index.d.ts.map +0 -1
  324. package/dist/types/indexing-store/metadata.d.ts +0 -10
  325. package/dist/types/indexing-store/metadata.d.ts.map +0 -1
  326. package/dist/types/indexing-store/realtime.d.ts +0 -10
  327. package/dist/types/indexing-store/realtime.d.ts.map +0 -1
  328. package/dist/types/internal/common.d.ts +0 -13
  329. package/dist/types/internal/common.d.ts.map +0 -1
  330. package/dist/types/internal/errors.d.ts +0 -55
  331. package/dist/types/internal/errors.d.ts.map +0 -1
  332. package/dist/types/internal/logger.d.ts +0 -26
  333. package/dist/types/internal/logger.d.ts.map +0 -1
  334. package/dist/types/internal/metrics.d.ts +0 -77
  335. package/dist/types/internal/metrics.d.ts.map +0 -1
  336. package/dist/types/internal/options.d.ts +0 -59
  337. package/dist/types/internal/options.d.ts.map +0 -1
  338. package/dist/types/internal/shutdown.d.ts +0 -8
  339. package/dist/types/internal/shutdown.d.ts.map +0 -1
  340. package/dist/types/internal/telemetry.d.ts +0 -43
  341. package/dist/types/internal/telemetry.d.ts.map +0 -1
  342. package/dist/types/internal/types.d.ts +0 -328
  343. package/dist/types/internal/types.d.ts.map +0 -1
  344. package/dist/types/server/error.d.ts +0 -5
  345. package/dist/types/server/error.d.ts.map +0 -1
  346. package/dist/types/server/index.d.ts +0 -13
  347. package/dist/types/server/index.d.ts.map +0 -1
  348. package/dist/types/sync/abi.d.ts +0 -54
  349. package/dist/types/sync/abi.d.ts.map +0 -1
  350. package/dist/types/sync/events.d.ts +0 -24
  351. package/dist/types/sync/events.d.ts.map +0 -1
  352. package/dist/types/sync/filter.d.ts +0 -71
  353. package/dist/types/sync/filter.d.ts.map +0 -1
  354. package/dist/types/sync/fragments.d.ts +0 -21
  355. package/dist/types/sync/fragments.d.ts.map +0 -1
  356. package/dist/types/sync/index.d.ts +0 -112
  357. package/dist/types/sync/index.d.ts.map +0 -1
  358. package/dist/types/sync/transport.d.ts +0 -8
  359. package/dist/types/sync/transport.d.ts.map +0 -1
  360. package/dist/types/sync-historical/index.d.ts +0 -28
  361. package/dist/types/sync-historical/index.d.ts.map +0 -1
  362. package/dist/types/sync-realtime/bloom.d.ts +0 -19
  363. package/dist/types/sync-realtime/bloom.d.ts.map +0 -1
  364. package/dist/types/sync-realtime/index.d.ts +0 -48
  365. package/dist/types/sync-realtime/index.d.ts.map +0 -1
  366. package/dist/types/sync-store/encoding.d.ts +0 -151
  367. package/dist/types/sync-store/encoding.d.ts.map +0 -1
  368. package/dist/types/sync-store/index.d.ts +0 -104
  369. package/dist/types/sync-store/index.d.ts.map +0 -1
  370. package/dist/types/sync-store/migrations.d.ts +0 -13
  371. package/dist/types/sync-store/migrations.d.ts.map +0 -1
  372. package/dist/types/types/db.d.ts +0 -213
  373. package/dist/types/types/db.d.ts.map +0 -1
  374. package/dist/types/types/eth.d.ts +0 -196
  375. package/dist/types/types/eth.d.ts.map +0 -1
  376. package/dist/types/types/sync.d.ts +0 -15
  377. package/dist/types/types/sync.d.ts.map +0 -1
  378. package/dist/types/types/utils.d.ts +0 -22
  379. package/dist/types/types/utils.d.ts.map +0 -1
  380. package/dist/types/types/virtual.d.ts +0 -95
  381. package/dist/types/types/virtual.d.ts.map +0 -1
  382. package/dist/types/ui/ProgressBar.d.ts +0 -7
  383. package/dist/types/ui/ProgressBar.d.ts.map +0 -1
  384. package/dist/types/ui/Table.d.ts +0 -24
  385. package/dist/types/ui/Table.d.ts.map +0 -1
  386. package/dist/types/ui/app.d.ts +0 -14
  387. package/dist/types/ui/app.d.ts.map +0 -1
  388. package/dist/types/ui/graphiql.html.d.ts +0 -2
  389. package/dist/types/ui/graphiql.html.d.ts.map +0 -1
  390. package/dist/types/ui/index.d.ts +0 -5
  391. package/dist/types/ui/index.d.ts.map +0 -1
  392. package/dist/types/utils/bigint.d.ts +0 -15
  393. package/dist/types/utils/bigint.d.ts.map +0 -1
  394. package/dist/types/utils/chains.d.ts +0 -3
  395. package/dist/types/utils/chains.d.ts.map +0 -1
  396. package/dist/types/utils/checkpoint.d.ts +0 -40
  397. package/dist/types/utils/checkpoint.d.ts.map +0 -1
  398. package/dist/types/utils/chunk.d.ts +0 -2
  399. package/dist/types/utils/chunk.d.ts.map +0 -1
  400. package/dist/types/utils/date.d.ts +0 -7
  401. package/dist/types/utils/date.d.ts.map +0 -1
  402. package/dist/types/utils/debug.d.ts +0 -105
  403. package/dist/types/utils/debug.d.ts.map +0 -1
  404. package/dist/types/utils/dedupe.d.ts +0 -20
  405. package/dist/types/utils/dedupe.d.ts.map +0 -1
  406. package/dist/types/utils/duplicates.d.ts +0 -7
  407. package/dist/types/utils/duplicates.d.ts.map +0 -1
  408. package/dist/types/utils/estimate.d.ts +0 -11
  409. package/dist/types/utils/estimate.d.ts.map +0 -1
  410. package/dist/types/utils/extend.d.ts +0 -13
  411. package/dist/types/utils/extend.d.ts.map +0 -1
  412. package/dist/types/utils/format.d.ts +0 -3
  413. package/dist/types/utils/format.d.ts.map +0 -1
  414. package/dist/types/utils/generators.d.ts +0 -23
  415. package/dist/types/utils/generators.d.ts.map +0 -1
  416. package/dist/types/utils/hash.d.ts +0 -11
  417. package/dist/types/utils/hash.d.ts.map +0 -1
  418. package/dist/types/utils/interval.d.ts +0 -53
  419. package/dist/types/utils/interval.d.ts.map +0 -1
  420. package/dist/types/utils/lowercase.d.ts +0 -5
  421. package/dist/types/utils/lowercase.d.ts.map +0 -1
  422. package/dist/types/utils/mutex.d.ts +0 -8
  423. package/dist/types/utils/mutex.d.ts.map +0 -1
  424. package/dist/types/utils/never.d.ts +0 -2
  425. package/dist/types/utils/never.d.ts.map +0 -1
  426. package/dist/types/utils/offset.d.ts +0 -3
  427. package/dist/types/utils/offset.d.ts.map +0 -1
  428. package/dist/types/utils/order.d.ts +0 -2
  429. package/dist/types/utils/order.d.ts.map +0 -1
  430. package/dist/types/utils/partition.d.ts +0 -22
  431. package/dist/types/utils/partition.d.ts.map +0 -1
  432. package/dist/types/utils/pg.d.ts +0 -5
  433. package/dist/types/utils/pg.d.ts.map +0 -1
  434. package/dist/types/utils/pglite.d.ts +0 -25
  435. package/dist/types/utils/pglite.d.ts.map +0 -1
  436. package/dist/types/utils/port.d.ts +0 -5
  437. package/dist/types/utils/port.d.ts.map +0 -1
  438. package/dist/types/utils/print.d.ts +0 -2
  439. package/dist/types/utils/print.d.ts.map +0 -1
  440. package/dist/types/utils/promiseWithResolvers.d.ts +0 -10
  441. package/dist/types/utils/promiseWithResolvers.d.ts.map +0 -1
  442. package/dist/types/utils/queue.d.ts +0 -33
  443. package/dist/types/utils/queue.d.ts.map +0 -1
  444. package/dist/types/utils/range.d.ts +0 -8
  445. package/dist/types/utils/range.d.ts.map +0 -1
  446. package/dist/types/utils/requestQueue.d.ts +0 -21
  447. package/dist/types/utils/requestQueue.d.ts.map +0 -1
  448. package/dist/types/utils/result.d.ts +0 -17
  449. package/dist/types/utils/result.d.ts.map +0 -1
  450. package/dist/types/utils/rpc.d.ts +0 -57
  451. package/dist/types/utils/rpc.d.ts.map +0 -1
  452. package/dist/types/utils/serialize.d.ts +0 -19
  453. package/dist/types/utils/serialize.d.ts.map +0 -1
  454. package/dist/types/utils/timer.d.ts +0 -11
  455. package/dist/types/utils/timer.d.ts.map +0 -1
  456. package/dist/types/utils/wait.d.ts +0 -6
  457. package/dist/types/utils/wait.d.ts.map +0 -1
  458. package/dist/types/utils/zipper.d.ts +0 -36
  459. package/dist/types/utils/zipper.d.ts.map +0 -1
  460. package/src/utils/dedupe.ts +0 -40
  461. package/src/utils/promiseWithResolvers.ts +0 -20
  462. package/src/utils/queue.ts +0 -250
@@ -1,1186 +0,0 @@
1
- import { sql } from "kysely";
2
- const migrations = {
3
- "2023_05_15_0_initial": {
4
- async up(db) {
5
- await db.schema
6
- .createTable("blocks")
7
- .addColumn("baseFeePerGas", sql `bytea`) // BigInt
8
- .addColumn("chainId", "integer", (col) => col.notNull())
9
- .addColumn("difficulty", sql `bytea`, (col) => col.notNull()) // BigInt
10
- .addColumn("extraData", "text", (col) => col.notNull())
11
- .addColumn("finalized", "integer", (col) => col.notNull()) // Boolean (0 or 1).
12
- .addColumn("gasLimit", sql `bytea`, (col) => col.notNull()) // BigInt
13
- .addColumn("gasUsed", sql `bytea`, (col) => col.notNull()) // BigInt
14
- .addColumn("hash", "text", (col) => col.notNull().primaryKey())
15
- .addColumn("logsBloom", "text", (col) => col.notNull())
16
- .addColumn("miner", "text", (col) => col.notNull())
17
- .addColumn("mixHash", "text", (col) => col.notNull())
18
- .addColumn("nonce", "text", (col) => col.notNull())
19
- .addColumn("number", sql `bytea`, (col) => col.notNull()) // BigInt
20
- .addColumn("parentHash", "text", (col) => col.notNull())
21
- .addColumn("receiptsRoot", "text", (col) => col.notNull())
22
- .addColumn("sha3Uncles", "text", (col) => col.notNull())
23
- .addColumn("size", sql `bytea`, (col) => col.notNull()) // BigInt
24
- .addColumn("stateRoot", "text", (col) => col.notNull())
25
- .addColumn("timestamp", sql `bytea`, (col) => col.notNull()) // BigInt
26
- .addColumn("totalDifficulty", sql `bytea`, (col) => col.notNull()) // BigInt
27
- .addColumn("transactionsRoot", "text", (col) => col.notNull())
28
- .execute();
29
- await db.schema
30
- .createTable("transactions")
31
- .addColumn("accessList", "text")
32
- .addColumn("blockHash", "text", (col) => col.notNull())
33
- .addColumn("blockNumber", sql `bytea`, (col) => col.notNull()) // BigInt
34
- .addColumn("chainId", "integer", (col) => col.notNull())
35
- .addColumn("finalized", "integer", (col) => col.notNull()) // Boolean (0 or 1).
36
- .addColumn("from", "text", (col) => col.notNull())
37
- .addColumn("gas", sql `bytea`, (col) => col.notNull()) // BigInt
38
- .addColumn("gasPrice", sql `bytea`) // BigInt
39
- .addColumn("hash", "text", (col) => col.notNull().primaryKey())
40
- .addColumn("input", "text", (col) => col.notNull())
41
- .addColumn("maxFeePerGas", sql `bytea`) // BigInt
42
- .addColumn("maxPriorityFeePerGas", sql `bytea`) // BigInt
43
- .addColumn("nonce", "integer", (col) => col.notNull())
44
- .addColumn("r", "text", (col) => col.notNull())
45
- .addColumn("s", "text", (col) => col.notNull())
46
- .addColumn("to", "text")
47
- .addColumn("transactionIndex", "integer", (col) => col.notNull())
48
- .addColumn("type", "text", (col) => col.notNull())
49
- .addColumn("value", sql `bytea`, (col) => col.notNull()) // BigInt
50
- .addColumn("v", sql `bytea`, (col) => col.notNull()) // BigInt
51
- .execute();
52
- await db.schema
53
- .createTable("logs")
54
- .addColumn("address", "text", (col) => col.notNull())
55
- .addColumn("blockHash", "text", (col) => col.notNull())
56
- .addColumn("blockNumber", sql `bytea`, (col) => col.notNull()) // BigInt
57
- .addColumn("chainId", "integer", (col) => col.notNull())
58
- .addColumn("data", "text", (col) => col.notNull())
59
- .addColumn("finalized", "integer", (col) => col.notNull()) // Boolean (0 or 1).
60
- .addColumn("id", "text", (col) => col.notNull().primaryKey())
61
- .addColumn("logIndex", "integer", (col) => col.notNull())
62
- .addColumn("topic0", "text")
63
- .addColumn("topic1", "text")
64
- .addColumn("topic2", "text")
65
- .addColumn("topic3", "text")
66
- .addColumn("transactionHash", "text", (col) => col.notNull())
67
- .addColumn("transactionIndex", "integer", (col) => col.notNull())
68
- .execute();
69
- await db.schema
70
- .createTable("contractReadResults")
71
- .addColumn("address", "text", (col) => col.notNull())
72
- .addColumn("blockNumber", sql `bytea`, (col) => col.notNull()) // BigInt
73
- .addColumn("chainId", "integer", (col) => col.notNull())
74
- .addColumn("data", "text", (col) => col.notNull())
75
- .addColumn("finalized", "integer", (col) => col.notNull()) // Boolean (0 or 1).
76
- .addColumn("result", "text", (col) => col.notNull())
77
- .addPrimaryKeyConstraint("contractReadResultPrimaryKey", [
78
- "chainId",
79
- "blockNumber",
80
- "address",
81
- "data",
82
- ])
83
- .execute();
84
- await db.schema
85
- .createTable("logFilterCachedRanges")
86
- .addColumn("endBlock", sql `bytea`, (col) => col.notNull()) // BigInt
87
- .addColumn("endBlockTimestamp", sql `bytea`, (col) => col.notNull()) // BigInt
88
- .addColumn("filterKey", "text", (col) => col.notNull())
89
- // The `id` column should not be included in INSERT statements.
90
- // This column uses Postgres SERIAL type which autoincrements.
91
- .addColumn("id", "serial", (col) => col.notNull().primaryKey())
92
- .addColumn("startBlock", sql `bytea`, (col) => col.notNull()) // BigInt
93
- .execute();
94
- },
95
- },
96
- "2023_06_20_0_indices": {
97
- async up(db) {
98
- await db.schema
99
- .createIndex("log_events_index")
100
- .on("logs")
101
- .columns(["address", "chainId", "blockHash"])
102
- .execute();
103
- await db.schema
104
- .createIndex("blocks_index")
105
- .on("blocks")
106
- .columns(["timestamp", "number"])
107
- .execute();
108
- await db.schema
109
- .createIndex("logFilterCachedRanges_index")
110
- .on("logFilterCachedRanges")
111
- .columns(["filterKey"])
112
- .execute();
113
- },
114
- },
115
- "2023_07_18_0_better_indices": {
116
- async up(db) {
117
- // Drop old indices.
118
- await db.schema.dropIndex("log_events_index").execute();
119
- await db.schema.dropIndex("blocks_index").execute();
120
- // Block hash is a join key.
121
- await db.schema
122
- .createIndex("log_block_hash_index")
123
- .on("logs")
124
- .column("blockHash")
125
- .execute();
126
- // Chain ID, address and topic0 are all used in WHERE clauses.
127
- await db.schema
128
- .createIndex("log_chain_id_index")
129
- .on("logs")
130
- .column("chainId")
131
- .execute();
132
- await db.schema
133
- .createIndex("log_address_index")
134
- .on("logs")
135
- .column("address")
136
- .execute();
137
- await db.schema
138
- .createIndex("log_topic0_index")
139
- .on("logs")
140
- .column("topic0")
141
- .execute();
142
- // Block timestamp and number are both used in WHERE and SORT clauses.
143
- await db.schema
144
- .createIndex("block_timestamp_index")
145
- .on("blocks")
146
- .column("timestamp")
147
- .execute();
148
- await db.schema
149
- .createIndex("block_number_index")
150
- .on("blocks")
151
- .column("number")
152
- .execute();
153
- },
154
- },
155
- "2023_07_24_0_drop_finalized": {
156
- async up(db) {
157
- await db.schema.alterTable("blocks").dropColumn("finalized").execute();
158
- await db.schema
159
- .alterTable("transactions")
160
- .dropColumn("finalized")
161
- .execute();
162
- await db.schema.alterTable("logs").dropColumn("finalized").execute();
163
- await db.schema
164
- .alterTable("contractReadResults")
165
- .dropColumn("finalized")
166
- .execute();
167
- },
168
- },
169
- "2023_09_19_0_new_sync_design": {
170
- async up(db) {
171
- /** This table is no longer being used. */
172
- await db.schema.dropTable("logFilterCachedRanges").execute();
173
- /** Drop and re-create all tables to fix bigint encoding. */
174
- await db.schema.dropTable("blocks").execute();
175
- await db.schema
176
- .createTable("blocks")
177
- .addColumn("baseFeePerGas", "numeric(78, 0)")
178
- .addColumn("chainId", "integer", (col) => col.notNull())
179
- .addColumn("difficulty", "numeric(78, 0)", (col) => col.notNull())
180
- .addColumn("extraData", "text", (col) => col.notNull())
181
- .addColumn("gasLimit", "numeric(78, 0)", (col) => col.notNull())
182
- .addColumn("gasUsed", "numeric(78, 0)", (col) => col.notNull())
183
- .addColumn("hash", "varchar(66)", (col) => col.notNull().primaryKey())
184
- .addColumn("logsBloom", "varchar(514)", (col) => col.notNull())
185
- .addColumn("miner", "varchar(42)", (col) => col.notNull())
186
- .addColumn("mixHash", "varchar(66)", (col) => col.notNull())
187
- .addColumn("nonce", "varchar(18)", (col) => col.notNull())
188
- .addColumn("number", "numeric(78, 0)", (col) => col.notNull())
189
- .addColumn("parentHash", "varchar(66)", (col) => col.notNull())
190
- .addColumn("receiptsRoot", "varchar(66)", (col) => col.notNull())
191
- .addColumn("sha3Uncles", "varchar(66)", (col) => col.notNull())
192
- .addColumn("size", "numeric(78, 0)", (col) => col.notNull())
193
- .addColumn("stateRoot", "varchar(66)", (col) => col.notNull())
194
- .addColumn("timestamp", "numeric(78, 0)", (col) => col.notNull())
195
- .addColumn("totalDifficulty", "numeric(78, 0)", (col) => col.notNull())
196
- .addColumn("transactionsRoot", "varchar(66)", (col) => col.notNull())
197
- .execute();
198
- await db.schema
199
- .createIndex("blockTimestampIndex")
200
- .on("blocks")
201
- .column("timestamp")
202
- .execute();
203
- await db.schema
204
- .createIndex("blockNumberIndex")
205
- .on("blocks")
206
- .column("number")
207
- .execute();
208
- await db.schema.dropTable("transactions").execute();
209
- await db.schema
210
- .createTable("transactions")
211
- .addColumn("accessList", "text")
212
- .addColumn("blockHash", "varchar(66)", (col) => col.notNull())
213
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
214
- .addColumn("chainId", "integer", (col) => col.notNull())
215
- .addColumn("from", "varchar(42)", (col) => col.notNull())
216
- .addColumn("gas", "numeric(78, 0)", (col) => col.notNull())
217
- .addColumn("gasPrice", "numeric(78, 0)")
218
- .addColumn("hash", "varchar(66)", (col) => col.notNull().primaryKey())
219
- .addColumn("input", "text", (col) => col.notNull())
220
- .addColumn("maxFeePerGas", "numeric(78, 0)")
221
- .addColumn("maxPriorityFeePerGas", "numeric(78, 0)")
222
- .addColumn("nonce", "integer", (col) => col.notNull())
223
- .addColumn("r", "varchar(66)", (col) => col.notNull())
224
- .addColumn("s", "varchar(66)", (col) => col.notNull())
225
- .addColumn("to", "varchar(42)")
226
- .addColumn("transactionIndex", "integer", (col) => col.notNull())
227
- .addColumn("type", "text", (col) => col.notNull())
228
- .addColumn("value", "numeric(78, 0)", (col) => col.notNull())
229
- .addColumn("v", "numeric(78, 0)", (col) => col.notNull())
230
- .execute();
231
- await db.schema.dropTable("logs").execute();
232
- await db.schema
233
- .createTable("logs")
234
- .addColumn("address", "varchar(42)", (col) => col.notNull())
235
- .addColumn("blockHash", "varchar(66)", (col) => col.notNull())
236
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
237
- .addColumn("chainId", "integer", (col) => col.notNull())
238
- .addColumn("data", "text", (col) => col.notNull())
239
- .addColumn("id", "text", (col) => col.notNull().primaryKey())
240
- .addColumn("logIndex", "integer", (col) => col.notNull())
241
- .addColumn("topic0", "varchar(66)")
242
- .addColumn("topic1", "varchar(66)")
243
- .addColumn("topic2", "varchar(66)")
244
- .addColumn("topic3", "varchar(66)")
245
- .addColumn("transactionHash", "varchar(66)", (col) => col.notNull())
246
- .addColumn("transactionIndex", "integer", (col) => col.notNull())
247
- .execute();
248
- await db.schema
249
- .createIndex("logBlockHashIndex")
250
- .on("logs")
251
- .column("blockHash")
252
- .execute();
253
- await db.schema
254
- .createIndex("logChainIdIndex")
255
- .on("logs")
256
- .column("chainId")
257
- .execute();
258
- await db.schema
259
- .createIndex("logAddressIndex")
260
- .on("logs")
261
- .column("address")
262
- .execute();
263
- await db.schema
264
- .createIndex("logTopic0Index")
265
- .on("logs")
266
- .column("topic0")
267
- .execute();
268
- await db.schema.dropTable("contractReadResults").execute();
269
- await db.schema
270
- .createTable("contractReadResults")
271
- .addColumn("address", "varchar(42)", (col) => col.notNull())
272
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
273
- .addColumn("chainId", "integer", (col) => col.notNull())
274
- .addColumn("data", "text", (col) => col.notNull())
275
- .addColumn("result", "text", (col) => col.notNull())
276
- .addPrimaryKeyConstraint("contractReadResultPrimaryKey", [
277
- "chainId",
278
- "blockNumber",
279
- "address",
280
- "data",
281
- ])
282
- .execute();
283
- /** Add new log filter and factory contract interval tables. */
284
- await db.schema
285
- .createTable("logFilters")
286
- .addColumn("id", "text", (col) => col.notNull().primaryKey()) // `${chainId}_${address}_${topic0}_${topic1}_${topic2}_${topic3}`
287
- .addColumn("chainId", "integer", (col) => col.notNull())
288
- .addColumn("address", "varchar(66)")
289
- .addColumn("topic0", "varchar(66)")
290
- .addColumn("topic1", "varchar(66)")
291
- .addColumn("topic2", "varchar(66)")
292
- .addColumn("topic3", "varchar(66)")
293
- .execute();
294
- await db.schema
295
- .createTable("logFilterIntervals")
296
- .addColumn("id", "serial", (col) => col.notNull().primaryKey()) // Auto-increment
297
- .addColumn("logFilterId", "text", (col) => col.notNull().references("logFilters.id"))
298
- .addColumn("startBlock", "numeric(78, 0)", (col) => col.notNull())
299
- .addColumn("endBlock", "numeric(78, 0)", (col) => col.notNull())
300
- .execute();
301
- await db.schema
302
- .createIndex("logFilterIntervalsLogFilterId")
303
- .on("logFilterIntervals")
304
- .column("logFilterId")
305
- .execute();
306
- await db.schema
307
- .createTable("factories")
308
- .addColumn("id", "text", (col) => col.notNull().primaryKey()) // `${chainId}_${address}_${eventSelector}_${childAddressLocation}`
309
- .addColumn("chainId", "integer", (col) => col.notNull())
310
- .addColumn("address", "varchar(42)", (col) => col.notNull())
311
- .addColumn("eventSelector", "varchar(66)", (col) => col.notNull())
312
- .addColumn("childAddressLocation", "text", (col) => col.notNull()) // `topic${number}` or `offset${number}`
313
- .addColumn("topic0", "varchar(66)")
314
- .addColumn("topic1", "varchar(66)")
315
- .addColumn("topic2", "varchar(66)")
316
- .addColumn("topic3", "varchar(66)")
317
- .execute();
318
- await db.schema
319
- .createTable("factoryLogFilterIntervals")
320
- .addColumn("id", "serial", (col) => col.notNull().primaryKey()) // Auto-increment
321
- .addColumn("factoryId", "text", (col) => col.notNull().references("factories.id"))
322
- .addColumn("startBlock", "numeric(78, 0)", (col) => col.notNull())
323
- .addColumn("endBlock", "numeric(78, 0)", (col) => col.notNull())
324
- .execute();
325
- await db.schema
326
- .createIndex("factoryLogFilterIntervalsFactoryId")
327
- .on("factoryLogFilterIntervals")
328
- .column("factoryId")
329
- .execute();
330
- },
331
- },
332
- "2023_11_06_0_new_rpc_cache_design": {
333
- async up(db) {
334
- await db.schema.dropTable("contractReadResults").execute();
335
- /**
336
- * Formatting for "request" field values:
337
- *
338
- * eth_call: eth_call_{to}_{data}
339
- * eth_getBalance: eth_getBalance_{address}
340
- * eth_getCode: eth_getCode_{address}
341
- * eth_getStorageAt: eth_getStorageAt_{address}_{slot}
342
- */
343
- await db.schema
344
- .createTable("rpcRequestResults")
345
- .addColumn("request", "text", (col) => col.notNull())
346
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
347
- .addColumn("chainId", "integer", (col) => col.notNull())
348
- .addColumn("result", "text", (col) => col.notNull())
349
- .addPrimaryKeyConstraint("rpcRequestResultPrimaryKey", [
350
- "request",
351
- "chainId",
352
- "blockNumber",
353
- ])
354
- .execute();
355
- },
356
- },
357
- "2024_01_30_0_change_chain_id_type": {
358
- async up(db) {
359
- await db.schema
360
- .alterTable("blocks")
361
- .alterColumn("chainId", (col) => col.setDataType("int8"))
362
- .execute();
363
- await db.schema
364
- .alterTable("transactions")
365
- .alterColumn("chainId", (col) => col.setDataType("int8"))
366
- .execute();
367
- await db.schema
368
- .alterTable("logs")
369
- .alterColumn("chainId", (col) => col.setDataType("int8"))
370
- .execute();
371
- await db.schema
372
- .alterTable("logFilters")
373
- .alterColumn("chainId", (col) => col.setDataType("int8"))
374
- .execute();
375
- await db.schema
376
- .alterTable("factories")
377
- .alterColumn("chainId", (col) => col.setDataType("int8"))
378
- .execute();
379
- await db.schema
380
- .alterTable("rpcRequestResults")
381
- .alterColumn("chainId", (col) => col.setDataType("int8"))
382
- .execute();
383
- },
384
- },
385
- "2024_02_1_0_nullable_block_columns": {
386
- async up(db) {
387
- await db.schema
388
- .alterTable("blocks")
389
- .alterColumn("mixHash", (col) => col.dropNotNull())
390
- .execute();
391
- await db.schema
392
- .alterTable("blocks")
393
- .alterColumn("nonce", (col) => col.dropNotNull())
394
- .execute();
395
- },
396
- },
397
- "2024_03_00_0_log_transaction_hash_index": {
398
- async up(db) {
399
- await db.schema
400
- .createIndex("log_transaction_hash_index")
401
- .on("logs")
402
- .column("transactionHash")
403
- .execute();
404
- },
405
- },
406
- "2024_03_13_0_nullable_block_columns_sha3uncles": {
407
- async up(db) {
408
- await db.schema
409
- .alterTable("blocks")
410
- .alterColumn("sha3Uncles", (col) => col.dropNotNull())
411
- .execute();
412
- },
413
- },
414
- "2024_03_14_0_nullable_transaction_rsv": {
415
- async up(db) {
416
- await db.schema
417
- .alterTable("transactions")
418
- .alterColumn("r", (col) => col.dropNotNull())
419
- .execute();
420
- await db.schema
421
- .alterTable("transactions")
422
- .alterColumn("s", (col) => col.dropNotNull())
423
- .execute();
424
- await db.schema
425
- .alterTable("transactions")
426
- .alterColumn("v", (col) => col.dropNotNull())
427
- .execute();
428
- },
429
- },
430
- "2024_03_20_0_checkpoint_in_logs_table": {
431
- async up(_db) {
432
- // no-op migration to avoid crashing databases that successfully ran this migration
433
- return;
434
- },
435
- },
436
- "2024_04_04_0_log_events_indexes": {
437
- async up(db) {
438
- await db.schema.dropIndex("blockNumberIndex").ifExists().execute();
439
- await db.schema.dropIndex("blockTimestampIndex").ifExists().execute();
440
- await db.schema
441
- .createIndex("logBlockNumberIndex")
442
- .on("logs")
443
- .column("blockNumber")
444
- .execute();
445
- },
446
- },
447
- "2024_04_14_0_nullable_block_total_difficulty": {
448
- async up(db) {
449
- await db.schema
450
- .alterTable("blocks")
451
- .alterColumn("totalDifficulty", (col) => col.dropNotNull())
452
- .execute();
453
- },
454
- },
455
- "2024_04_14_1_add_checkpoint_column_to_logs_table": {
456
- async up(db) {
457
- await db.executeQuery(sql `
458
- ALTER TABLE ponder_sync.logs
459
- ADD COLUMN IF NOT EXISTS
460
- checkpoint varchar(75)`.compile(db));
461
- },
462
- },
463
- "2024_04_14_2_set_checkpoint_in_logs_table": {
464
- async up(db) {
465
- await db.executeQuery(sql `SET statement_timeout = 3600000;`.compile(db));
466
- await db.executeQuery(sql `
467
- CREATE TEMP TABLE cp_vals AS
468
- SELECT
469
- logs.id,
470
- (lpad(blocks.timestamp::text, 10, '0') ||
471
- lpad(blocks."chainId"::text, 16, '0') ||
472
- lpad(blocks.number::text, 16, '0') ||
473
- lpad(logs."transactionIndex"::text, 16, '0') ||
474
- '5' ||
475
- lpad(logs."logIndex"::text, 16, '0')) AS checkpoint
476
- FROM ponder_sync.logs logs
477
- JOIN ponder_sync.blocks blocks ON logs."blockHash" = blocks.hash;
478
- `.compile(db));
479
- await db.executeQuery(sql `
480
- CREATE INDEX ON cp_vals(id)
481
- `.compile(db));
482
- await db.executeQuery(sql `
483
- UPDATE ponder_sync.logs
484
- SET checkpoint=cp_vals.checkpoint
485
- FROM cp_vals
486
- WHERE ponder_sync.logs.id = cp_vals.id
487
- `.compile(db));
488
- await db.executeQuery(sql `DROP TABLE IF EXISTS cp_vals CASCADE;`.compile(db));
489
- },
490
- },
491
- "2024_04_14_3_index_on_logs_checkpoint": {
492
- async up(db) {
493
- await db.schema
494
- .createIndex("logs_checkpoint_index")
495
- .ifNotExists()
496
- .on("logs")
497
- .column("checkpoint")
498
- .execute();
499
- },
500
- },
501
- "2024_04_22_0_transaction_receipts": {
502
- async up(db) {
503
- // Update the log filter ID keys to include the integer includeTransactionReceipts value.
504
- // Note that we have to remove the FK constraint, which is fine given our app logic.
505
- await db.schema
506
- .alterTable("logFilterIntervals")
507
- .dropConstraint("logFilterIntervals_logFilterId_fkey")
508
- .execute();
509
- await db
510
- .updateTable("logFilters")
511
- .set({ id: sql `"id" || '_0'` })
512
- .execute();
513
- await db
514
- .updateTable("logFilterIntervals")
515
- .set({ logFilterId: sql `"logFilterId" || '_0'` })
516
- .execute();
517
- // Add the includeTransactionReceipts column. By setting a default in the ADD COLUMN statement,
518
- // Postgres will automatically populate all existing rows with the default value. But, we don't
519
- // actually want a default (want to require a value on insertion), so immediately drop the default.
520
- await db.schema
521
- .alterTable("logFilters")
522
- .addColumn("includeTransactionReceipts", "integer", (col) => col.notNull().defaultTo(0))
523
- .execute();
524
- await db.schema
525
- .alterTable("logFilters")
526
- .alterColumn("includeTransactionReceipts", (col) => col.dropDefault())
527
- .execute();
528
- // Repeat the same 2 steps for the factory tables.
529
- await db.schema
530
- .alterTable("factoryLogFilterIntervals")
531
- .dropConstraint("factoryLogFilterIntervals_factoryId_fkey")
532
- .execute();
533
- await db
534
- .updateTable("factories")
535
- .set({ id: sql `"id" || '_0'` })
536
- .execute();
537
- await db
538
- .updateTable("factoryLogFilterIntervals")
539
- .set({ factoryId: sql `"factoryId" || '_0'` })
540
- .execute();
541
- await db.schema
542
- .alterTable("factories")
543
- .addColumn("includeTransactionReceipts", "integer", (col) => col.notNull().defaultTo(0))
544
- .execute();
545
- await db.schema
546
- .alterTable("factories")
547
- .alterColumn("includeTransactionReceipts", (col) => col.dropDefault())
548
- .execute();
549
- await db.schema
550
- .createTable("transactionReceipts")
551
- .addColumn("blockHash", "varchar(66)", (col) => col.notNull())
552
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
553
- .addColumn("chainId", "integer", (col) => col.notNull())
554
- .addColumn("contractAddress", "varchar(66)")
555
- .addColumn("cumulativeGasUsed", "numeric(78, 0)", (col) => col.notNull())
556
- .addColumn("effectiveGasPrice", "numeric(78, 0)", (col) => col.notNull())
557
- .addColumn("from", "varchar(42)", (col) => col.notNull())
558
- .addColumn("gasUsed", "numeric(78, 0)", (col) => col.notNull())
559
- .addColumn("logs", "text", (col) => col.notNull())
560
- .addColumn("logsBloom", "varchar(514)", (col) => col.notNull())
561
- .addColumn("status", "text", (col) => col.notNull())
562
- .addColumn("to", "varchar(42)")
563
- .addColumn("transactionHash", "varchar(66)", (col) => col.notNull().primaryKey())
564
- .addColumn("transactionIndex", "integer", (col) => col.notNull())
565
- .addColumn("type", "text", (col) => col.notNull())
566
- .execute();
567
- },
568
- },
569
- "2024_04_23_0_block_filters": {
570
- async up(db) {
571
- await db.schema
572
- .createTable("blockFilters")
573
- .addColumn("id", "text", (col) => col.notNull().primaryKey()) // `${chainId}_${interval}_${offset}`
574
- .addColumn("chainId", "integer", (col) => col.notNull())
575
- .addColumn("interval", "integer", (col) => col.notNull())
576
- .addColumn("offset", "integer", (col) => col.notNull())
577
- .execute();
578
- await db.schema
579
- .createTable("blockFilterIntervals")
580
- .addColumn("id", "serial", (col) => col.notNull().primaryKey()) // Auto-increment
581
- .addColumn("blockFilterId", "text", (col) => col.notNull().references("blockFilters.id"))
582
- .addColumn("startBlock", "numeric(78, 0)", (col) => col.notNull())
583
- .addColumn("endBlock", "numeric(78, 0)", (col) => col.notNull())
584
- .execute();
585
- await db.schema
586
- .createIndex("blockFilterIntervalsBlockFilterId")
587
- .on("blockFilterIntervals")
588
- .column("blockFilterId")
589
- .execute();
590
- await db.schema
591
- .alterTable("blocks")
592
- .addColumn("checkpoint", "varchar(75)")
593
- .execute();
594
- await db.executeQuery(sql `
595
- CREATE TEMP TABLE bcp_vals AS
596
- SELECT
597
- blocks.hash,
598
- (lpad(blocks.timestamp::text, 10, '0') ||
599
- lpad(blocks."chainId"::text, 16, '0') ||
600
- lpad(blocks.number::text, 16, '0') ||
601
- '9999999999999999' ||
602
- '5' ||
603
- '0000000000000000') AS checkpoint
604
- FROM ponder_sync.blocks
605
- `.compile(db));
606
- await db.executeQuery(sql `
607
- UPDATE ponder_sync.blocks
608
- SET checkpoint=bcp_vals.checkpoint
609
- FROM bcp_vals
610
- WHERE ponder_sync.blocks.hash = bcp_vals.hash
611
- `.compile(db));
612
- await db.executeQuery(sql `DROP TABLE IF EXISTS bcp_vals CASCADE;`.compile(db));
613
- await db.schema
614
- .alterTable("blocks")
615
- .alterColumn("checkpoint", (col) => col.setNotNull())
616
- .execute();
617
- // The blocks.number index supports getEvents and deleteRealtimeData
618
- await db.schema
619
- .createIndex("blockNumberIndex")
620
- .on("blocks")
621
- .column("number")
622
- .execute();
623
- // The blocks.chainId index supports getEvents and deleteRealtimeData
624
- await db.schema
625
- .createIndex("blockChainIdIndex")
626
- .on("blocks")
627
- .column("chainId")
628
- .execute();
629
- // The blocks.checkpoint index supports getEvents
630
- await db.schema
631
- .createIndex("blockCheckpointIndex")
632
- .on("blocks")
633
- .column("checkpoint")
634
- .execute();
635
- },
636
- },
637
- "2024_05_07_0_trace_filters": {
638
- async up(db) {
639
- // TODO(kyle) drop foreign key constraint on "blockFilterIntervals.blockFilterId".
640
- await db.schema
641
- .createTable("traceFilters")
642
- .addColumn("id", "text", (col) => col.notNull().primaryKey()) // `${chainId}_${fromAddress}_${toAddress}`
643
- .addColumn("chainId", "integer", (col) => col.notNull())
644
- .addColumn("fromAddress", "varchar(42)")
645
- .addColumn("toAddress", "varchar(42)")
646
- .execute();
647
- await db.schema
648
- .createTable("traceFilterIntervals")
649
- .addColumn("id", "serial", (col) => col.notNull().primaryKey()) // Auto-increment
650
- .addColumn("traceFilterId", "text", (col) => col.notNull())
651
- .addColumn("startBlock", "numeric(78, 0)", (col) => col.notNull())
652
- .addColumn("endBlock", "numeric(78, 0)", (col) => col.notNull())
653
- .execute();
654
- await db.schema
655
- .createIndex("traceFilterIntervalsTraceFilterId")
656
- .on("traceFilterIntervals")
657
- .column("traceFilterId")
658
- .execute();
659
- await db.schema
660
- .createTable("callTraces")
661
- .addColumn("id", "text", (col) => col.notNull().primaryKey())
662
- .addColumn("callType", "text", (col) => col.notNull())
663
- .addColumn("from", "varchar(42)", (col) => col.notNull())
664
- .addColumn("gas", "numeric(78, 0)", (col) => col.notNull())
665
- .addColumn("input", "text", (col) => col.notNull())
666
- .addColumn("to", "varchar(42)", (col) => col.notNull())
667
- .addColumn("value", "numeric(78, 0)", (col) => col.notNull())
668
- .addColumn("blockHash", "varchar(66)", (col) => col.notNull())
669
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
670
- .addColumn("error", "text")
671
- .addColumn("gasUsed", "numeric(78, 0)")
672
- .addColumn("output", "text")
673
- .addColumn("subtraces", "integer", (col) => col.notNull())
674
- .addColumn("traceAddress", "text", (col) => col.notNull())
675
- .addColumn("transactionHash", "varchar(66)", (col) => col.notNull())
676
- .addColumn("transactionPosition", "integer", (col) => col.notNull())
677
- .addColumn("functionSelector", "varchar(10)", (col) => col.notNull())
678
- .addColumn("chainId", "integer", (col) => col.notNull())
679
- .addColumn("checkpoint", "varchar(75)", (col) => col.notNull())
680
- .execute();
681
- // The callTraces.blockNumber index supports getEvents and deleteRealtimeData
682
- await db.schema
683
- .createIndex("callTracesBlockNumberIndex")
684
- .on("callTraces")
685
- .column("blockNumber")
686
- .execute();
687
- // The callTraces.functionSelector index supports getEvents
688
- await db.schema
689
- .createIndex("callTracesFunctionSelectorIndex")
690
- .on("callTraces")
691
- .column("functionSelector")
692
- .execute();
693
- // The callTraces.error index supports getEvents
694
- await db.schema
695
- .createIndex("callTracesErrorIndex")
696
- .on("callTraces")
697
- .column("error")
698
- .execute();
699
- // The callTraces.blockHash index supports getEvents
700
- await db.schema
701
- .createIndex("callTracesBlockHashIndex")
702
- .on("callTraces")
703
- .column("blockHash")
704
- .execute();
705
- // The callTraces.transactionHash index supports getEvents
706
- await db.schema
707
- .createIndex("callTracesTransactionHashIndex")
708
- .on("callTraces")
709
- .column("transactionHash")
710
- .execute();
711
- // The callTraces.checkpoint index supports getEvents
712
- await db.schema
713
- .createIndex("callTracesCheckpointIndex")
714
- .on("callTraces")
715
- .column("checkpoint")
716
- .execute();
717
- // The callTraces.chainId index supports getEvents
718
- await db.schema
719
- .createIndex("callTracesChainIdIndex")
720
- .on("callTraces")
721
- .column("chainId")
722
- .execute();
723
- // The callTraces.from index supports getEvents
724
- await db.schema
725
- .createIndex("callTracesFromIndex")
726
- .on("callTraces")
727
- .column("from")
728
- .execute();
729
- // The callTraces.to index supports getEvents
730
- await db.schema
731
- .createIndex("callTracesToIndex")
732
- .on("callTraces")
733
- .column("to")
734
- .execute();
735
- await db.schema
736
- .alterTable("factories")
737
- .renameTo("factoryLogFilters")
738
- .execute();
739
- await db.schema
740
- .createTable("factoryTraceFilters")
741
- .addColumn("id", "text", (col) => col.notNull().primaryKey()) // `${chainId}_${address}_${eventSelector}_${childAddressLocation}_${fromAddress}`
742
- .addColumn("chainId", "integer", (col) => col.notNull())
743
- .addColumn("address", "varchar(42)", (col) => col.notNull())
744
- .addColumn("eventSelector", "varchar(66)", (col) => col.notNull())
745
- .addColumn("childAddressLocation", "text", (col) => col.notNull()) // `topic${number}` or `offset${number}`
746
- .addColumn("fromAddress", "varchar(42)")
747
- .execute();
748
- await db.schema
749
- .createTable("factoryTraceFilterIntervals")
750
- .addColumn("id", "serial", (col) => col.notNull().primaryKey()) // Auto-increment
751
- .addColumn("factoryId", "text")
752
- .addColumn("startBlock", "numeric(78, 0)", (col) => col.notNull())
753
- .addColumn("endBlock", "numeric(78, 0)", (col) => col.notNull())
754
- .execute();
755
- await db.schema
756
- .createIndex("factoryTraceFilterIntervalsFactoryId")
757
- .on("factoryTraceFilterIntervals")
758
- .column("factoryId")
759
- .execute();
760
- },
761
- },
762
- "2024_11_04_0_request_cache": {
763
- async up(db) {
764
- await db.schema
765
- .createTable("rpc_request_results")
766
- .addColumn("request", "text", (col) => col.notNull())
767
- .addColumn("block_number", "numeric(78, 0)")
768
- .addColumn("chain_id", "integer", (col) => col.notNull())
769
- .addColumn("result", "text", (col) => col.notNull())
770
- .addPrimaryKeyConstraint("rpc_request_result_primary_key", [
771
- "request",
772
- "chain_id",
773
- ])
774
- .execute();
775
- await db.executeQuery(sql `
776
- INSERT INTO ponder_sync.rpc_request_results (request, block_number, chain_id, result)
777
- SELECT
778
- CONCAT (
779
- '{"method":"eth_getbalance","params":["',
780
- LOWER(SUBSTRING(request, 16)),
781
- '","0x',
782
- to_hex("blockNumber"::bigint),
783
- '"]}'
784
- ) as request,
785
- "blockNumber" as block_number,
786
- "chainId" as chain_id,
787
- result
788
- FROM ponder_sync."rpcRequestResults"
789
- WHERE ponder_sync."rpcRequestResults".request LIKE 'eth_getBalance_%'
790
- AND ponder_sync."rpcRequestResults"."blockNumber" <= 9223372036854775807;
791
- `.compile(db));
792
- await db.executeQuery(sql `
793
- INSERT INTO ponder_sync.rpc_request_results (request, block_number, chain_id, result)
794
- SELECT
795
- CONCAT (
796
- '{"method":"eth_call","params":[{"data":"',
797
- LOWER(SUBSTRING(request, 53)),
798
- '","to":"',
799
- LOWER(SUBSTRING(request, 10, 42)),
800
- '"},"0x',
801
- to_hex("blockNumber"::bigint),
802
- '"]}'
803
- ) as request,
804
- "blockNumber" as block_number,
805
- "chainId" as chain_id,
806
- result
807
- FROM ponder_sync."rpcRequestResults"
808
- WHERE ponder_sync."rpcRequestResults".request LIKE 'eth_call_%'
809
- AND ponder_sync."rpcRequestResults"."blockNumber" <= 9223372036854775807;
810
- `.compile(db));
811
- await db.schema
812
- .dropTable("rpcRequestResults")
813
- .ifExists()
814
- .cascade()
815
- .execute();
816
- },
817
- },
818
- "2024_11_09_0_adjacent_interval": {
819
- async up(db) {
820
- await db.schema
821
- .createTable("intervals")
822
- .addColumn("fragment_id", "text", (col) => col.notNull().primaryKey())
823
- .addColumn("chain_id", "integer", (col) => col.notNull())
824
- .addColumn("blocks", sql `nummultirange`, (col) => col.notNull())
825
- .execute();
826
- await db
827
- .with("range(fragment_id, chain_id, blocks)", (db) => db
828
- .selectFrom("logFilters as lf")
829
- .innerJoin("logFilterIntervals as lfi", "lf.id", "lfi.logFilterId")
830
- .select([
831
- sql `concat('log', '_', lf.id)`.as("fragment_id"),
832
- "lf.chainId as chain_id",
833
- sql `numrange(lfi."startBlock", lfi."endBlock" + 1, '[]')`.as("blocks"),
834
- ]))
835
- .insertInto("intervals")
836
- .columns(["fragment_id", "chain_id", "blocks"])
837
- .expression(sql.raw(`
838
- SELECT
839
- fragment_id,
840
- chain_id,
841
- range_agg(range.blocks) as blocks
842
- FROM range
843
- GROUP BY fragment_id, chain_id
844
- `))
845
- .execute();
846
- await db.schema.dropTable("logFilters").ifExists().cascade().execute();
847
- await db.schema
848
- .dropTable("logFilterIntervals")
849
- .ifExists()
850
- .cascade()
851
- .execute();
852
- await db
853
- .with("range(fragment_id, chain_id, blocks)", (db) => db
854
- .selectFrom("factoryLogFilters as flf")
855
- .innerJoin("factoryLogFilterIntervals as flfi", "flf.id", "flfi.factoryId")
856
- .select([
857
- sql `concat('log', '_', flf.id)`.as("fragment_id"),
858
- "flf.chainId as chain_id",
859
- sql `numrange(flfi."startBlock", flfi."endBlock" + 1, '[]')`.as("blocks"),
860
- ]))
861
- .insertInto("intervals")
862
- .columns(["fragment_id", "chain_id", "blocks"])
863
- .expression(sql.raw(`
864
- SELECT
865
- fragment_id,
866
- chain_id,
867
- range_agg(range.blocks) as blocks
868
- FROM range
869
- GROUP BY fragment_id, chain_id
870
- `))
871
- .onConflict((oc) => oc.column("fragment_id").doUpdateSet({
872
- blocks: sql `intervals.blocks + excluded.blocks`,
873
- }))
874
- .execute();
875
- await db.schema
876
- .dropTable("factoryLogFilters")
877
- .ifExists()
878
- .cascade()
879
- .execute();
880
- await db.schema
881
- .dropTable("factoryLogFilterIntervals")
882
- .ifExists()
883
- .cascade()
884
- .execute();
885
- await db
886
- .with("range(fragment_id, chain_id, blocks)", (db) => db
887
- .selectFrom("traceFilters as tf")
888
- .innerJoin("traceFilterIntervals as tfi", "tf.id", "tfi.traceFilterId")
889
- .select([
890
- sql `concat('trace', '_', tf.id)`.as("fragment_id"),
891
- "tf.chainId as chain_id",
892
- sql `numrange(tfi."startBlock", tfi."endBlock" + 1, '[]')`.as("blocks"),
893
- ]))
894
- .insertInto("intervals")
895
- .columns(["fragment_id", "chain_id", "blocks"])
896
- .expression(sql.raw(`
897
- SELECT
898
- fragment_id,
899
- chain_id,
900
- range_agg(range.blocks) as blocks
901
- FROM range
902
- GROUP BY fragment_id, chain_id
903
- `))
904
- .onConflict((oc) => oc.column("fragment_id").doUpdateSet({
905
- blocks: sql `intervals.blocks + excluded.blocks`,
906
- }))
907
- .execute();
908
- await db.schema.dropTable("traceFilters").ifExists().cascade().execute();
909
- await db.schema
910
- .dropTable("traceFilterIntervals")
911
- .ifExists()
912
- .cascade()
913
- .execute();
914
- await db
915
- .with("range(fragment_id, chain_id, blocks)", (db) => db
916
- .selectFrom("factoryTraceFilters as ftf")
917
- .innerJoin("factoryTraceFilterIntervals as ftfi", "ftf.id", "ftfi.factoryId")
918
- .select([
919
- sql `concat('trace', '_', ftf.id)`.as("fragment_id"),
920
- "ftf.chainId as chain_id",
921
- sql `numrange(ftfi."startBlock", ftfi."endBlock" + 1, '[]')`.as("blocks"),
922
- ]))
923
- .insertInto("intervals")
924
- .columns(["fragment_id", "chain_id", "blocks"])
925
- .expression(sql.raw(`
926
- SELECT
927
- fragment_id,
928
- chain_id,
929
- range_agg(range.blocks) as blocks
930
- FROM range
931
- GROUP BY fragment_id, chain_id
932
- `))
933
- .onConflict((oc) => oc.column("fragment_id").doUpdateSet({
934
- blocks: sql `intervals.blocks + excluded.blocks`,
935
- }))
936
- .execute();
937
- await db.schema
938
- .dropTable("factoryTraceFilters")
939
- .ifExists()
940
- .cascade()
941
- .execute();
942
- await db.schema
943
- .dropTable("factoryTraceFilterIntervals")
944
- .ifExists()
945
- .cascade()
946
- .execute();
947
- await db
948
- .with("range(fragment_id, chain_id, blocks)", (db) => db
949
- .selectFrom("blockFilters as bf")
950
- .innerJoin("blockFilterIntervals as bfi", "bf.id", "bfi.blockFilterId")
951
- .select([
952
- sql `concat('block', '_', bf.id)`.as("fragment_id"),
953
- "bf.chainId as chain_id",
954
- sql `numrange(bfi."startBlock", bfi."endBlock" + 1, '[]')`.as("blocks"),
955
- ]))
956
- .insertInto("intervals")
957
- .columns(["fragment_id", "chain_id", "blocks"])
958
- .expression(sql.raw(`
959
- SELECT
960
- fragment_id,
961
- chain_id,
962
- range_agg(range.blocks) as blocks
963
- FROM range
964
- GROUP BY fragment_id, chain_id
965
- `))
966
- .onConflict((oc) => oc.column("fragment_id").doUpdateSet({
967
- blocks: sql `intervals.blocks + excluded.blocks`,
968
- }))
969
- .execute();
970
- await db.schema.dropTable("blockFilters").ifExists().cascade().execute();
971
- await db.schema
972
- .dropTable("blockFilterIntervals")
973
- .ifExists()
974
- .cascade()
975
- .execute();
976
- },
977
- },
978
- "2024_11_12_0_debug": {
979
- async up(db) {
980
- await db.schema.dropTable("callTraces").ifExists().cascade().execute();
981
- await db
982
- .deleteFrom("intervals")
983
- .where("fragment_id", "like", "trace_%")
984
- .execute();
985
- await db.schema
986
- .createTable("traces")
987
- .addColumn("id", "text", (col) => col.notNull().primaryKey())
988
- .addColumn("chainId", "integer", (col) => col.notNull())
989
- .addColumn("checkpoint", "varchar(75)", (col) => col.notNull())
990
- .addColumn("type", "text", (col) => col.notNull())
991
- .addColumn("transactionHash", "varchar(66)", (col) => col.notNull())
992
- .addColumn("blockNumber", "numeric(78, 0)", (col) => col.notNull())
993
- .addColumn("blockHash", "varchar(66)", (col) => col.notNull())
994
- .addColumn("from", "varchar(42)", (col) => col.notNull())
995
- .addColumn("to", "varchar(42)")
996
- .addColumn("gas", "numeric(78, 0)", (col) => col.notNull())
997
- .addColumn("gasUsed", "numeric(78, 0)", (col) => col.notNull())
998
- .addColumn("input", "text", (col) => col.notNull())
999
- .addColumn("functionSelector", "text", (col) => col.notNull())
1000
- .addColumn("output", "text")
1001
- .addColumn("error", "text")
1002
- .addColumn("revertReason", "text")
1003
- .addColumn("value", "numeric(78, 0)")
1004
- .addColumn("index", "integer", (col) => col.notNull())
1005
- .addColumn("subcalls", "integer", (col) => col.notNull())
1006
- .addColumn("isReverted", "integer", (col) => col.notNull())
1007
- .execute();
1008
- // `getEvents` benefits from an index on
1009
- // "blockNumber", "functionSelector", "blockHash"
1010
- // "transactionHash", "checkpoint", "chainId", "from", "to",
1011
- // "value", "type", and "isReverted"
1012
- await db.schema
1013
- .createIndex("trace_block_number_index")
1014
- .on("traces")
1015
- .column("blockNumber")
1016
- .execute();
1017
- await db.schema
1018
- .createIndex("trace_function_selector_index")
1019
- .on("traces")
1020
- .column("functionSelector")
1021
- .execute();
1022
- await db.schema
1023
- .createIndex("trace_is_reverted_index")
1024
- .on("traces")
1025
- .column("isReverted")
1026
- .execute();
1027
- await db.schema
1028
- .createIndex("trace_block_hash_index")
1029
- .on("traces")
1030
- .column("blockHash")
1031
- .execute();
1032
- await db.schema
1033
- .createIndex("trace_transaction_hash_index")
1034
- .on("traces")
1035
- .column("transactionHash")
1036
- .execute();
1037
- await db.schema
1038
- .createIndex("trace_checkpoint_index")
1039
- .on("traces")
1040
- .column("checkpoint")
1041
- .execute();
1042
- await db.schema
1043
- .createIndex("trace_chain_id_index")
1044
- .on("traces")
1045
- .column("chainId")
1046
- .execute();
1047
- await db.schema
1048
- .createIndex("trace_value_index")
1049
- .on("traces")
1050
- .column("value")
1051
- .execute();
1052
- await db.schema
1053
- .createIndex("trace_from_index")
1054
- .on("traces")
1055
- .column("from")
1056
- .execute();
1057
- await db.schema
1058
- .createIndex("trace_to_index")
1059
- .on("traces")
1060
- .column("to")
1061
- .execute();
1062
- await db.schema
1063
- .createIndex("trace_type_index")
1064
- .on("traces")
1065
- .column("type")
1066
- .execute();
1067
- // add `checkpoint` to `transactions`
1068
- await db.schema
1069
- .alterTable("transactions")
1070
- .addColumn("checkpoint", "varchar(75)")
1071
- .execute();
1072
- await db.schema
1073
- .createIndex("transactions_checkpoint_index")
1074
- .on("transactions")
1075
- .column("checkpoint")
1076
- .execute();
1077
- await db.schema
1078
- .alterTable("transactionReceipts")
1079
- .dropColumn("logs")
1080
- .execute();
1081
- },
1082
- },
1083
- "2024_12_02_0_request_cache": {
1084
- async up(db) {
1085
- await db.schema
1086
- .alterTable("rpc_request_results")
1087
- .addColumn("request_hash", "text", (col) => col.generatedAlwaysAs(sql `MD5(request)`).stored().notNull())
1088
- .execute();
1089
- // Drop previous primary key constraint, on columns "request" and "chain_id"
1090
- await db.schema
1091
- .alterTable("rpc_request_results")
1092
- .dropConstraint("rpc_request_result_primary_key")
1093
- .execute();
1094
- await db.schema
1095
- .alterTable("rpc_request_results")
1096
- .addPrimaryKeyConstraint("rpc_request_result_primary_key", [
1097
- "request_hash",
1098
- "chain_id",
1099
- ])
1100
- .execute();
1101
- },
1102
- },
1103
- };
1104
- class StaticMigrationProvider {
1105
- async getMigrations() {
1106
- return migrations;
1107
- }
1108
- }
1109
- export const migrationProvider = new StaticMigrationProvider();
1110
- export async function moveLegacyTables({ common, db, newSchemaName, }) {
1111
- // If the database has ponder migration tables present in the public schema,
1112
- // move them to the new schema.
1113
- let hasLegacyMigrations = false;
1114
- try {
1115
- const { rows } = await db.executeQuery(sql `SELECT * FROM public.kysely_migration LIMIT 1`.compile(db));
1116
- if (rows[0]?.name === "2023_05_15_0_initial")
1117
- hasLegacyMigrations = true;
1118
- }
1119
- catch (e) {
1120
- const error = e;
1121
- if (!error.message.includes("does not exist"))
1122
- throw error;
1123
- }
1124
- if (!hasLegacyMigrations)
1125
- return;
1126
- common.logger.warn({
1127
- service: "database",
1128
- msg: "Detected legacy sync migrations. Moving tables from 'public' schema to 'ponder_sync'.",
1129
- });
1130
- async function moveOrDeleteTable(tableName) {
1131
- try {
1132
- await db.schema
1133
- .alterTable(`public.${tableName}`)
1134
- .setSchema(newSchemaName)
1135
- .execute();
1136
- }
1137
- catch (e) {
1138
- const error = e;
1139
- switch (error.message) {
1140
- case `relation "${tableName}" already exists in schema "${newSchemaName}"`: {
1141
- await db.schema
1142
- .dropTable(`public.${tableName}`)
1143
- .execute()
1144
- // Ignore errors if this fails.
1145
- .catch(() => { });
1146
- break;
1147
- }
1148
- case `relation "public.${tableName}" does not exist`: {
1149
- break;
1150
- }
1151
- default: {
1152
- common.logger.warn({
1153
- service: "database",
1154
- msg: `Failed to migrate table "${tableName}" to "ponder_sync" schema: ${error.message}`,
1155
- });
1156
- }
1157
- }
1158
- }
1159
- common.logger.warn({
1160
- service: "database",
1161
- msg: `Successfully moved 'public.${tableName}' table to 'ponder_sync' schema.`,
1162
- });
1163
- }
1164
- const tableNames = [
1165
- "kysely_migration",
1166
- "kysely_migration_lock",
1167
- "blocks",
1168
- "logs",
1169
- "transactions",
1170
- "rpcRequestResults",
1171
- // Note that logFilterIntervals has a constraint that uses logFilters,
1172
- // so the order here matters. Same story with factoryLogFilterIntervals.
1173
- "logFilterIntervals",
1174
- "logFilters",
1175
- "factoryLogFilterIntervals",
1176
- "factories",
1177
- // Old ones that are no longer being used, but should still be moved
1178
- // so that older migrations work as expected.
1179
- "contractReadResults",
1180
- "logFilterCachedRanges",
1181
- ];
1182
- for (const tableName of tableNames) {
1183
- await moveOrDeleteTable(tableName);
1184
- }
1185
- }
1186
- //# sourceMappingURL=migrations.js.map