ponder 0.14.13 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/esm/bin/commands/createViews.js +28 -11
  3. package/dist/esm/bin/commands/createViews.js.map +1 -1
  4. package/dist/esm/bin/commands/dev.js +42 -22
  5. package/dist/esm/bin/commands/dev.js.map +1 -1
  6. package/dist/esm/bin/commands/prune.js +3 -0
  7. package/dist/esm/bin/commands/prune.js.map +1 -1
  8. package/dist/esm/bin/commands/serve.js +4 -1
  9. package/dist/esm/bin/commands/serve.js.map +1 -1
  10. package/dist/esm/bin/commands/start.js +18 -6
  11. package/dist/esm/bin/commands/start.js.map +1 -1
  12. package/dist/esm/bin/isolatedController.js +200 -0
  13. package/dist/esm/bin/isolatedController.js.map +1 -0
  14. package/dist/esm/bin/isolatedWorker.js +146 -0
  15. package/dist/esm/bin/isolatedWorker.js.map +1 -0
  16. package/dist/esm/build/config.js +322 -402
  17. package/dist/esm/build/config.js.map +1 -1
  18. package/dist/esm/build/index.js +8 -11
  19. package/dist/esm/build/index.js.map +1 -1
  20. package/dist/esm/build/pre.js +1 -4
  21. package/dist/esm/build/pre.js.map +1 -1
  22. package/dist/esm/build/schema.js +25 -3
  23. package/dist/esm/build/schema.js.map +1 -1
  24. package/dist/esm/client/index.js +306 -42
  25. package/dist/esm/client/index.js.map +1 -1
  26. package/dist/esm/database/actions.js +264 -104
  27. package/dist/esm/database/actions.js.map +1 -1
  28. package/dist/esm/database/index.js +39 -33
  29. package/dist/esm/database/index.js.map +1 -1
  30. package/dist/esm/database/queryBuilder.js +1 -0
  31. package/dist/esm/database/queryBuilder.js.map +1 -1
  32. package/dist/esm/drizzle/index.js +11 -7
  33. package/dist/esm/drizzle/index.js.map +1 -1
  34. package/dist/esm/drizzle/onchain.js +18 -0
  35. package/dist/esm/drizzle/onchain.js.map +1 -1
  36. package/dist/esm/indexing/client.js +32 -25
  37. package/dist/esm/indexing/client.js.map +1 -1
  38. package/dist/esm/indexing/index.js +110 -178
  39. package/dist/esm/indexing/index.js.map +1 -1
  40. package/dist/esm/indexing/profile.js +1 -1
  41. package/dist/esm/indexing/profile.js.map +1 -1
  42. package/dist/esm/indexing-store/cache.js +196 -274
  43. package/dist/esm/indexing-store/cache.js.map +1 -1
  44. package/dist/esm/indexing-store/historical.js +17 -13
  45. package/dist/esm/indexing-store/historical.js.map +1 -1
  46. package/dist/esm/indexing-store/index.js +10 -1
  47. package/dist/esm/indexing-store/index.js.map +1 -1
  48. package/dist/esm/indexing-store/profile.js +3 -3
  49. package/dist/esm/indexing-store/profile.js.map +1 -1
  50. package/dist/esm/indexing-store/realtime.js +27 -2
  51. package/dist/esm/indexing-store/realtime.js.map +1 -1
  52. package/dist/esm/internal/errors.js +28 -0
  53. package/dist/esm/internal/errors.js.map +1 -1
  54. package/dist/esm/internal/metrics.js +279 -82
  55. package/dist/esm/internal/metrics.js.map +1 -1
  56. package/dist/esm/internal/options.js +1 -0
  57. package/dist/esm/internal/options.js.map +1 -1
  58. package/dist/esm/internal/telemetry.js +1 -1
  59. package/dist/esm/internal/telemetry.js.map +1 -1
  60. package/dist/esm/rpc/http.js +130 -0
  61. package/dist/esm/rpc/http.js.map +1 -0
  62. package/dist/esm/rpc/index.js +38 -7
  63. package/dist/esm/rpc/index.js.map +1 -1
  64. package/dist/esm/runtime/events.js +179 -212
  65. package/dist/esm/runtime/events.js.map +1 -1
  66. package/dist/esm/runtime/filter.js +71 -0
  67. package/dist/esm/runtime/filter.js.map +1 -1
  68. package/dist/esm/runtime/fragments.js +78 -73
  69. package/dist/esm/runtime/fragments.js.map +1 -1
  70. package/dist/esm/runtime/historical.js +306 -130
  71. package/dist/esm/runtime/historical.js.map +1 -1
  72. package/dist/esm/runtime/index.js +183 -58
  73. package/dist/esm/runtime/index.js.map +1 -1
  74. package/dist/esm/runtime/isolated.js +462 -0
  75. package/dist/esm/runtime/isolated.js.map +1 -0
  76. package/dist/esm/runtime/multichain.js +80 -73
  77. package/dist/esm/runtime/multichain.js.map +1 -1
  78. package/dist/esm/runtime/omnichain.js +82 -75
  79. package/dist/esm/runtime/omnichain.js.map +1 -1
  80. package/dist/esm/runtime/realtime.js +198 -66
  81. package/dist/esm/runtime/realtime.js.map +1 -1
  82. package/dist/esm/sync-historical/index.js +416 -457
  83. package/dist/esm/sync-historical/index.js.map +1 -1
  84. package/dist/esm/sync-realtime/bloom.js +3 -3
  85. package/dist/esm/sync-realtime/bloom.js.map +1 -1
  86. package/dist/esm/sync-realtime/index.js +27 -46
  87. package/dist/esm/sync-realtime/index.js.map +1 -1
  88. package/dist/esm/sync-store/index.js +112 -63
  89. package/dist/esm/sync-store/index.js.map +1 -1
  90. package/dist/esm/utils/abi.js +20 -32
  91. package/dist/esm/utils/abi.js.map +1 -1
  92. package/dist/esm/utils/chunk.js +8 -0
  93. package/dist/esm/utils/chunk.js.map +1 -0
  94. package/dist/esm/utils/promiseAllSettledWithThrow.js +19 -0
  95. package/dist/esm/utils/promiseAllSettledWithThrow.js.map +1 -0
  96. package/dist/esm/{client/parse.js → utils/sql-parse.js} +94 -80
  97. package/dist/esm/utils/sql-parse.js.map +1 -0
  98. package/dist/types/bin/commands/createViews.d.ts.map +1 -1
  99. package/dist/types/bin/commands/dev.d.ts.map +1 -1
  100. package/dist/types/bin/commands/prune.d.ts.map +1 -1
  101. package/dist/types/bin/commands/serve.d.ts.map +1 -1
  102. package/dist/types/bin/commands/start.d.ts.map +1 -1
  103. package/dist/types/bin/isolatedController.d.ts +13 -0
  104. package/dist/types/bin/isolatedController.d.ts.map +1 -0
  105. package/dist/types/bin/isolatedWorker.d.ts +9 -0
  106. package/dist/types/bin/isolatedWorker.d.ts.map +1 -0
  107. package/dist/types/build/config.d.ts +29 -11
  108. package/dist/types/build/config.d.ts.map +1 -1
  109. package/dist/types/build/index.d.ts +3 -2
  110. package/dist/types/build/index.d.ts.map +1 -1
  111. package/dist/types/build/pre.d.ts +1 -1
  112. package/dist/types/build/pre.d.ts.map +1 -1
  113. package/dist/types/build/schema.d.ts +5 -3
  114. package/dist/types/build/schema.d.ts.map +1 -1
  115. package/dist/types/client/index.d.ts +1 -1
  116. package/dist/types/client/index.d.ts.map +1 -1
  117. package/dist/types/config/index.d.ts +3 -3
  118. package/dist/types/config/index.d.ts.map +1 -1
  119. package/dist/types/database/actions.d.ts +53 -7
  120. package/dist/types/database/actions.d.ts.map +1 -1
  121. package/dist/types/database/index.d.ts +21 -21
  122. package/dist/types/database/index.d.ts.map +1 -1
  123. package/dist/types/database/queryBuilder.d.ts.map +1 -1
  124. package/dist/types/drizzle/index.d.ts +4 -5
  125. package/dist/types/drizzle/index.d.ts.map +1 -1
  126. package/dist/types/drizzle/onchain.d.ts +6 -0
  127. package/dist/types/drizzle/onchain.d.ts.map +1 -1
  128. package/dist/types/indexing/client.d.ts.map +1 -1
  129. package/dist/types/indexing/index.d.ts +2 -5
  130. package/dist/types/indexing/index.d.ts.map +1 -1
  131. package/dist/types/indexing-store/cache.d.ts +3 -2
  132. package/dist/types/indexing-store/cache.d.ts.map +1 -1
  133. package/dist/types/indexing-store/historical.d.ts +2 -1
  134. package/dist/types/indexing-store/historical.d.ts.map +1 -1
  135. package/dist/types/indexing-store/index.d.ts +1 -0
  136. package/dist/types/indexing-store/index.d.ts.map +1 -1
  137. package/dist/types/indexing-store/realtime.d.ts +2 -1
  138. package/dist/types/indexing-store/realtime.d.ts.map +1 -1
  139. package/dist/types/internal/errors.d.ts +5 -0
  140. package/dist/types/internal/errors.d.ts.map +1 -1
  141. package/dist/types/internal/metrics.d.ts +21 -0
  142. package/dist/types/internal/metrics.d.ts.map +1 -1
  143. package/dist/types/internal/options.d.ts +2 -0
  144. package/dist/types/internal/options.d.ts.map +1 -1
  145. package/dist/types/internal/types.d.ts +66 -58
  146. package/dist/types/internal/types.d.ts.map +1 -1
  147. package/dist/types/rpc/http.d.ts +17 -0
  148. package/dist/types/rpc/http.d.ts.map +1 -0
  149. package/dist/types/rpc/index.d.ts.map +1 -1
  150. package/dist/types/runtime/events.d.ts +4 -4
  151. package/dist/types/runtime/events.d.ts.map +1 -1
  152. package/dist/types/runtime/filter.d.ts +5 -1
  153. package/dist/types/runtime/filter.d.ts.map +1 -1
  154. package/dist/types/runtime/fragments.d.ts +4 -3
  155. package/dist/types/runtime/fragments.d.ts.map +1 -1
  156. package/dist/types/runtime/historical.d.ts +29 -13
  157. package/dist/types/runtime/historical.d.ts.map +1 -1
  158. package/dist/types/runtime/index.d.ts +49 -6
  159. package/dist/types/runtime/index.d.ts.map +1 -1
  160. package/dist/types/runtime/init.d.ts +5 -5
  161. package/dist/types/runtime/init.d.ts.map +1 -1
  162. package/dist/types/runtime/isolated.d.ts +14 -0
  163. package/dist/types/runtime/isolated.d.ts.map +1 -0
  164. package/dist/types/runtime/multichain.d.ts.map +1 -1
  165. package/dist/types/runtime/omnichain.d.ts.map +1 -1
  166. package/dist/types/runtime/realtime.d.ts +21 -10
  167. package/dist/types/runtime/realtime.d.ts.map +1 -1
  168. package/dist/types/sync-historical/index.d.ts +18 -8
  169. package/dist/types/sync-historical/index.d.ts.map +1 -1
  170. package/dist/types/sync-realtime/bloom.d.ts.map +1 -1
  171. package/dist/types/sync-realtime/index.d.ts +2 -2
  172. package/dist/types/sync-realtime/index.d.ts.map +1 -1
  173. package/dist/types/sync-store/index.d.ts +9 -9
  174. package/dist/types/sync-store/index.d.ts.map +1 -1
  175. package/dist/types/utils/abi.d.ts +3 -34
  176. package/dist/types/utils/abi.d.ts.map +1 -1
  177. package/dist/types/utils/chunk.d.ts +2 -0
  178. package/dist/types/utils/chunk.d.ts.map +1 -0
  179. package/dist/types/utils/promiseAllSettledWithThrow.d.ts +8 -0
  180. package/dist/types/utils/promiseAllSettledWithThrow.d.ts.map +1 -0
  181. package/dist/types/utils/sql-parse.d.ts +21 -0
  182. package/dist/types/utils/sql-parse.d.ts.map +1 -0
  183. package/package.json +2 -2
  184. package/src/bin/commands/createViews.ts +35 -15
  185. package/src/bin/commands/dev.ts +43 -21
  186. package/src/bin/commands/prune.ts +6 -0
  187. package/src/bin/commands/serve.ts +4 -1
  188. package/src/bin/commands/start.ts +20 -5
  189. package/src/bin/isolatedController.ts +300 -0
  190. package/src/bin/isolatedWorker.ts +192 -0
  191. package/src/build/config.ts +570 -632
  192. package/src/build/index.ts +14 -14
  193. package/src/build/pre.ts +1 -4
  194. package/src/build/schema.ts +49 -4
  195. package/src/client/index.ts +386 -48
  196. package/src/config/index.ts +3 -3
  197. package/src/database/actions.ts +469 -120
  198. package/src/database/index.ts +85 -58
  199. package/src/database/queryBuilder.ts +1 -0
  200. package/src/drizzle/index.ts +15 -7
  201. package/src/drizzle/onchain.ts +19 -0
  202. package/src/indexing/client.ts +38 -25
  203. package/src/indexing/index.ts +137 -230
  204. package/src/indexing/profile.ts +1 -1
  205. package/src/indexing-store/cache.ts +285 -414
  206. package/src/indexing-store/historical.ts +20 -10
  207. package/src/indexing-store/index.ts +16 -0
  208. package/src/indexing-store/profile.ts +3 -3
  209. package/src/indexing-store/realtime.ts +28 -0
  210. package/src/internal/errors.ts +26 -0
  211. package/src/internal/metrics.ts +341 -111
  212. package/src/internal/options.ts +4 -0
  213. package/src/internal/telemetry.ts +1 -1
  214. package/src/internal/types.ts +70 -87
  215. package/src/rpc/http.ts +164 -0
  216. package/src/rpc/index.ts +39 -7
  217. package/src/runtime/events.ts +195 -240
  218. package/src/runtime/filter.ts +85 -1
  219. package/src/runtime/fragments.ts +109 -113
  220. package/src/runtime/historical.ts +467 -189
  221. package/src/runtime/index.ts +337 -69
  222. package/src/runtime/init.ts +5 -5
  223. package/src/runtime/isolated.ts +768 -0
  224. package/src/runtime/multichain.ts +137 -102
  225. package/src/runtime/omnichain.ts +138 -106
  226. package/src/runtime/realtime.ts +322 -123
  227. package/src/sync-historical/index.ts +556 -692
  228. package/src/sync-realtime/bloom.ts +7 -3
  229. package/src/sync-realtime/index.ts +31 -46
  230. package/src/sync-store/index.ts +189 -95
  231. package/src/utils/abi.ts +33 -90
  232. package/src/utils/chunk.ts +7 -0
  233. package/src/utils/promiseAllSettledWithThrow.ts +27 -0
  234. package/src/{client/parse.ts → utils/sql-parse.ts} +100 -90
  235. package/dist/esm/client/parse.js.map +0 -1
  236. package/dist/types/client/parse.d.ts +0 -14
  237. package/dist/types/client/parse.d.ts.map +0 -1
@@ -1,19 +1,20 @@
1
1
  import crypto from "node:crypto";
2
2
  import { extractBlockNumberParam } from '../indexing/client.js';
3
- import { isAddressFactory, unionFilterIncludeBlock, unionFilterIncludeTrace, unionFilterIncludeTransaction, unionFilterIncludeTransactionReceipt, } from '../runtime/filter.js';
4
- import { encodeFragment, getFragments } from '../runtime/fragments.js';
3
+ import { getFilterFactories, isAddressFactory, unionFilterIncludeBlock, unionFilterIncludeTrace, unionFilterIncludeTransaction, unionFilterIncludeTransactionReceipt, } from '../runtime/filter.js';
4
+ import { encodeFragment, getFactoryFragments, getFragments, } from '../runtime/fragments.js';
5
+ import { intervalUnion } from '../utils/interval.js';
5
6
  import { toLowerCase } from '../utils/lowercase.js';
6
7
  import { orderObject } from '../utils/order.js';
7
8
  import { startClock } from '../utils/timer.js';
8
9
  import { and, asc, desc, eq, gte, inArray, isNull, lt, lte, or, sql, } from "drizzle-orm";
9
- import { unionAll } from "drizzle-orm/pg-core";
10
+ import { unionAll, } from "drizzle-orm/pg-core";
10
11
  import { hexToNumber, isHex } from "viem";
11
12
  import { encodeBlock, encodeLog, encodeTrace, encodeTransaction, encodeTransactionReceipt, } from "./encode.js";
12
13
  import * as PONDER_SYNC from "./schema.js";
13
- export const createSyncStore = ({ common, database, }) => {
14
+ export const createSyncStore = ({ common, qb, }) => {
14
15
  const syncStore = {
15
- insertIntervals: async ({ intervals, chainId }, context) => {
16
- if (intervals.length === 0)
16
+ insertIntervals: async ({ intervals, factoryIntervals, chainId }, context) => {
17
+ if (intervals.length === 0 && factoryIntervals.length === 0)
17
18
  return;
18
19
  const perFragmentIntervals = new Map();
19
20
  const values = [];
@@ -27,6 +28,15 @@ export const createSyncStore = ({ common, database, }) => {
27
28
  perFragmentIntervals.get(fragmentId).push(interval);
28
29
  }
29
30
  }
31
+ for (const { factory, interval } of factoryIntervals) {
32
+ for (const fragment of getFactoryFragments(factory)) {
33
+ const fragmentId = encodeFragment(fragment);
34
+ if (perFragmentIntervals.has(fragmentId) === false) {
35
+ perFragmentIntervals.set(fragmentId, []);
36
+ }
37
+ perFragmentIntervals.get(fragmentId).push(interval);
38
+ }
39
+ }
30
40
  // NOTE: In order to force proper range union behavior, `interval[1]` must
31
41
  // be rounded up.
32
42
  for (const [fragmentId, intervals] of perFragmentIntervals) {
@@ -46,7 +56,7 @@ export const createSyncStore = ({ common, database, }) => {
46
56
  }
47
57
  const batchSize = Math.floor(common.options.databaseMaxQueryParameters / 3);
48
58
  for (let i = 0; i < values.length; i += batchSize) {
49
- await database.syncQB.wrap({ label: "insert_intervals" }, (db) => db
59
+ await qb.wrap({ label: "insert_intervals" }, (db) => db
50
60
  .insert(PONDER_SYNC.intervals)
51
61
  .values(values.slice(i, i + batchSize))
52
62
  .onConflictDoUpdate({
@@ -56,20 +66,39 @@ export const createSyncStore = ({ common, database, }) => {
56
66
  }
57
67
  },
58
68
  getIntervals: async ({ filters }, context) => {
59
- const queries = filters.flatMap((filter, i) => {
69
+ const queries = [];
70
+ let index = 0;
71
+ for (const filter of filters) {
60
72
  const fragments = getFragments(filter);
61
- return fragments.map((fragment, j) => database.syncQB.raw
62
- .select({
63
- mergedBlocks: sql `range_agg(unnested.blocks)`.as("merged_blocks"),
64
- filter: sql.raw(`'${i}'`).as("filter"),
65
- fragment: sql.raw(`'${j}'`).as("fragment"),
66
- })
67
- .from(database.syncQB.raw
68
- .select({ blocks: sql.raw("unnest(blocks)").as("blocks") })
69
- .from(PONDER_SYNC.intervals)
70
- .where(sql.raw(`fragment_id IN (${fragment.adjacentIds.map((id) => `'${id}'`).join(", ")})`))
71
- .as("unnested")));
72
- });
73
+ for (const fragment of fragments) {
74
+ queries.push(qb.raw
75
+ .select({
76
+ mergedBlocks: sql `range_agg(unnested.blocks)`.as("merged_blocks"),
77
+ fragment: sql.raw(`'${index++}'`).as("fragment"),
78
+ })
79
+ .from(qb.raw
80
+ .select({ blocks: sql.raw("unnest(blocks)").as("blocks") })
81
+ .from(PONDER_SYNC.intervals)
82
+ .where(sql.raw(`fragment_id IN (${fragment.adjacentIds.map((id) => `'${id}'`).join(", ")})`))
83
+ .as("unnested")));
84
+ for (const factory of getFilterFactories(filter)) {
85
+ for (const fragment of getFactoryFragments(factory)) {
86
+ queries.push(qb.raw
87
+ .select({
88
+ mergedBlocks: sql `range_agg(unnested.blocks)`.as("merged_blocks"),
89
+ fragment: sql.raw(`'${index++}'`).as("fragment"),
90
+ })
91
+ .from(qb.raw
92
+ .select({
93
+ blocks: sql.raw("unnest(blocks)").as("blocks"),
94
+ })
95
+ .from(PONDER_SYNC.intervals)
96
+ .where(sql.raw(`fragment_id = '${encodeFragment(fragment)}'`))
97
+ .as("unnested")));
98
+ }
99
+ }
100
+ }
101
+ }
73
102
  let rows = [];
74
103
  if (queries.length > 1) {
75
104
  // Note: This query has no parameters, but there is a bug with
@@ -77,7 +106,7 @@ export const createSyncStore = ({ common, database, }) => {
77
106
  // Related: https://github.com/drizzle-team/drizzle-orm/issues/1740
78
107
  const batchSize = 200;
79
108
  for (let i = 0; i < queries.length; i += batchSize) {
80
- const _rows = await database.syncQB.wrap({ label: "select_intervals" }, () =>
109
+ const _rows = await qb.wrap({ label: "select_intervals" }, () =>
81
110
  // @ts-expect-error
82
111
  unionAll(...queries.slice(i, i + batchSize)), context);
83
112
  if (i === 0) {
@@ -89,24 +118,51 @@ export const createSyncStore = ({ common, database, }) => {
89
118
  }
90
119
  }
91
120
  else {
92
- rows = await database.syncQB.wrap({ label: "select_intervals" }, () => queries[0].execute(), context);
121
+ rows = await qb.wrap({ label: "select_intervals" }, () => queries[0].execute(), context);
93
122
  }
94
123
  const result = new Map();
95
124
  // NOTE: `interval[1]` must be rounded down in order to offset the previous
96
125
  // rounding.
97
- for (let i = 0; i < filters.length; i++) {
98
- const filter = filters[i];
126
+ index = 0;
127
+ for (const filter of filters) {
99
128
  const fragments = getFragments(filter);
100
129
  result.set(filter, []);
101
- for (let j = 0; j < fragments.length; j++) {
102
- const fragment = fragments[j];
130
+ for (const fragment of fragments) {
103
131
  const intervals = rows
104
- .filter((row) => row.filter === `${i}`)
105
- .filter((row) => row.fragment === `${j}`)
132
+ .filter((row) => row.fragment === `${index}`)
106
133
  .map((row) => (row.mergedBlocks
107
134
  ? JSON.parse(`[${row.mergedBlocks.slice(1, -1)}]`)
108
135
  : []).map((interval) => [interval[0], interval[1] - 1]))[0];
136
+ index += 1;
109
137
  result.get(filter).push({ fragment: fragment.fragment, intervals });
138
+ for (const factory of getFilterFactories(filter)) {
139
+ result.set(factory, []);
140
+ for (const fragment of getFactoryFragments(factory)) {
141
+ const intervals = rows
142
+ .filter((row) => row.fragment === `${index}`)
143
+ .map((row) => (row.mergedBlocks
144
+ ? JSON.parse(`[${row.mergedBlocks.slice(1, -1)}]`)
145
+ : []).map((interval) => [interval[0], interval[1] - 1]))[0];
146
+ index += 1;
147
+ result.get(factory).push({ fragment, intervals });
148
+ }
149
+ // Note: This is a stand-in for a migration to the `intervals` table
150
+ // required in `v0.15`. It is an invariant that filter with factories
151
+ // have a row in the intervals table for both the filter and the factory.
152
+ // If this invariant is broken, it must be because of the migration from
153
+ // `v0.14` to `v0.15`. In this case, we can assume that the factory interval
154
+ // is the same as the filter interval.
155
+ const filterIntervals = intervalUnion(result.get(filter).flatMap(({ intervals }) => intervals));
156
+ const factoryIntervals = intervalUnion(result.get(factory).flatMap(({ intervals }) => intervals));
157
+ if (filterIntervals.length > 0 &&
158
+ factoryIntervals.length === 0 &&
159
+ filter.fromBlock === factory.fromBlock &&
160
+ filter.toBlock === factory.toBlock) {
161
+ for (const factoryInterval of result.get(factory)) {
162
+ factoryInterval.intervals = filterIntervals;
163
+ }
164
+ }
165
+ }
110
166
  }
111
167
  }
112
168
  return result;
@@ -117,7 +173,7 @@ export const createSyncStore = ({ common, database, }) => {
117
173
  const { id, ..._factory } = factory;
118
174
  const batchSize = Math.floor(common.options.databaseMaxQueryParameters / 3);
119
175
  const values = [];
120
- const factoryInsert = database.syncQB.raw.$with("factory_insert").as(database.syncQB.raw
176
+ const factoryInsert = qb.raw.$with("factory_insert").as(qb.raw
121
177
  .insert(PONDER_SYNC.factories)
122
178
  .values({ factory: _factory })
123
179
  // @ts-expect-error bug with drizzle-orm
@@ -136,7 +192,7 @@ export const createSyncStore = ({ common, database, }) => {
136
192
  });
137
193
  }
138
194
  for (let i = 0; i < values.length; i += batchSize) {
139
- await database.syncQB.wrap({ label: "insert_child_addresses" }, (db) => db
195
+ await qb.wrap({ label: "insert_child_addresses" }, (db) => db
140
196
  .with(factoryInsert)
141
197
  .insert(PONDER_SYNC.factoryAddresses)
142
198
  .values(values.slice(i, i + batchSize)), context);
@@ -144,7 +200,7 @@ export const createSyncStore = ({ common, database, }) => {
144
200
  },
145
201
  getChildAddresses: ({ factory }, context) => {
146
202
  const { id, ..._factory } = factory;
147
- const factoryInsert = database.syncQB.raw.$with("factory_insert").as(database.syncQB.raw
203
+ const factoryInsert = qb.raw.$with("factory_insert").as(qb.raw
148
204
  .insert(PONDER_SYNC.factories)
149
205
  .values({ factory: _factory })
150
206
  // @ts-expect-error bug with drizzle-orm
@@ -153,7 +209,7 @@ export const createSyncStore = ({ common, database, }) => {
153
209
  target: PONDER_SYNC.factories.factory,
154
210
  set: { factory: sql `excluded.factory` },
155
211
  }));
156
- return database.syncQB
212
+ return qb
157
213
  .wrap({ label: "select_child_addresses" }, (db) => db
158
214
  .with(factoryInsert)
159
215
  .select({
@@ -161,9 +217,7 @@ export const createSyncStore = ({ common, database, }) => {
161
217
  blockNumber: PONDER_SYNC.factoryAddresses.blockNumber,
162
218
  })
163
219
  .from(PONDER_SYNC.factoryAddresses)
164
- .where(eq(PONDER_SYNC.factoryAddresses.factoryId, database.syncQB.raw
165
- .select({ id: factoryInsert.id })
166
- .from(factoryInsert))), context)
220
+ .where(eq(PONDER_SYNC.factoryAddresses.factoryId, qb.raw.select({ id: factoryInsert.id }).from(factoryInsert))), context)
167
221
  .then((rows) => {
168
222
  const result = new Map();
169
223
  for (const { address, blockNumber } of rows) {
@@ -176,7 +230,7 @@ export const createSyncStore = ({ common, database, }) => {
176
230
  });
177
231
  },
178
232
  getSafeCrashRecoveryBlock: async ({ chainId, timestamp }, context) => {
179
- const rows = await database.syncQB.wrap({ label: "select_crash_recovery_block" }, (db) => db
233
+ const rows = await qb.wrap({ label: "select_crash_recovery_block" }, (db) => db
180
234
  .select({
181
235
  number: PONDER_SYNC.blocks.number,
182
236
  timestamp: PONDER_SYNC.blocks.timestamp,
@@ -200,7 +254,7 @@ export const createSyncStore = ({ common, database, }) => {
200
254
  // both a log filter and a factory, the checkpoint must be included
201
255
  // in the db.
202
256
  for (let i = 0; i < logs.length; i += batchSize) {
203
- await database.syncQB.wrap({ label: "insert_logs" }, (db) => db
257
+ await qb.wrap({ label: "insert_logs" }, (db) => db
204
258
  .insert(PONDER_SYNC.logs)
205
259
  .values(logs
206
260
  .slice(i, i + batchSize)
@@ -222,7 +276,7 @@ export const createSyncStore = ({ common, database, }) => {
222
276
  const batchSize = Math.floor(common.options.databaseMaxQueryParameters /
223
277
  Object.keys(encodeBlock({ block: blocks[0], chainId })).length);
224
278
  for (let i = 0; i < blocks.length; i += batchSize) {
225
- await database.syncQB.wrap({ label: "insert_blocks" }, (db) => db
279
+ await qb.wrap({ label: "insert_blocks" }, (db) => db
226
280
  .insert(PONDER_SYNC.blocks)
227
281
  .values(blocks
228
282
  .slice(i, i + batchSize)
@@ -243,7 +297,7 @@ export const createSyncStore = ({ common, database, }) => {
243
297
  chainId,
244
298
  })).length);
245
299
  for (let i = 0; i < transactions.length; i += batchSize) {
246
- await database.syncQB.wrap({ label: "insert_transactions" }, (db) => db
300
+ await qb.wrap({ label: "insert_transactions" }, (db) => db
247
301
  .insert(PONDER_SYNC.transactions)
248
302
  .values(transactions
249
303
  .slice(i, i + batchSize)
@@ -268,7 +322,7 @@ export const createSyncStore = ({ common, database, }) => {
268
322
  chainId,
269
323
  })).length);
270
324
  for (let i = 0; i < transactionReceipts.length; i += batchSize) {
271
- await database.syncQB.wrap({ label: "insert_transaction_receipts" }, (db) => db
325
+ await qb.wrap({ label: "insert_transaction_receipts" }, (db) => db
272
326
  .insert(PONDER_SYNC.transactionReceipts)
273
327
  .values(transactionReceipts
274
328
  .slice(i, i + batchSize)
@@ -298,7 +352,7 @@ export const createSyncStore = ({ common, database, }) => {
298
352
  chainId,
299
353
  })).length);
300
354
  for (let i = 0; i < traces.length; i += batchSize) {
301
- await database.syncQB.wrap({ label: "insert_traces" }, (db) => db
355
+ await qb.wrap({ label: "insert_traces" }, (db) => db
302
356
  .insert(PONDER_SYNC.traces)
303
357
  .values(traces
304
358
  .slice(i, i + batchSize)
@@ -333,7 +387,7 @@ export const createSyncStore = ({ common, database, }) => {
333
387
  // @ts-ignore
334
388
  blockSelect[column] = PONDER_SYNC.blocks[column];
335
389
  }
336
- const blocksQuery = database.syncQB.raw
390
+ const blocksQuery = qb.raw
337
391
  .select(blockSelect)
338
392
  .from(PONDER_SYNC.blocks)
339
393
  .where(and(eq(PONDER_SYNC.blocks.chainId, BigInt(chainId)), gte(PONDER_SYNC.blocks.number, BigInt(fromBlock)), lte(PONDER_SYNC.blocks.number, BigInt(toBlock))))
@@ -351,7 +405,7 @@ export const createSyncStore = ({ common, database, }) => {
351
405
  // @ts-ignore
352
406
  transactionSelect[column] = PONDER_SYNC.transactions[column];
353
407
  }
354
- const transactionsQuery = database.syncQB.raw
408
+ const transactionsQuery = qb.raw
355
409
  .select(transactionSelect)
356
410
  .from(PONDER_SYNC.transactions)
357
411
  .where(and(eq(PONDER_SYNC.transactions.chainId, BigInt(chainId)), gte(PONDER_SYNC.transactions.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.transactions.blockNumber, BigInt(toBlock))))
@@ -369,7 +423,7 @@ export const createSyncStore = ({ common, database, }) => {
369
423
  transactionReceiptSelect[column] =
370
424
  PONDER_SYNC.transactionReceipts[column];
371
425
  }
372
- const transactionReceiptsQuery = database.syncQB.raw
426
+ const transactionReceiptsQuery = qb.raw
373
427
  .select(transactionReceiptSelect)
374
428
  .from(PONDER_SYNC.transactionReceipts)
375
429
  .where(and(eq(PONDER_SYNC.transactionReceipts.chainId, BigInt(chainId)), gte(PONDER_SYNC.transactionReceipts.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.transactionReceipts.blockNumber, BigInt(toBlock))))
@@ -391,13 +445,13 @@ export const createSyncStore = ({ common, database, }) => {
391
445
  // @ts-ignore
392
446
  traceSelect[column] = PONDER_SYNC.traces[column];
393
447
  }
394
- const tracesQuery = database.syncQB.raw
448
+ const tracesQuery = qb.raw
395
449
  .select(traceSelect)
396
450
  .from(PONDER_SYNC.traces)
397
451
  .where(and(eq(PONDER_SYNC.traces.chainId, BigInt(chainId)), gte(PONDER_SYNC.traces.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.traces.blockNumber, BigInt(toBlock)), or(...traceFilters.map((filter) => traceFilter(filter)), ...transferFilters.map((filter) => transferFilter(filter)))))
398
452
  .orderBy(asc(PONDER_SYNC.traces.blockNumber), asc(PONDER_SYNC.traces.transactionIndex), asc(PONDER_SYNC.traces.traceIndex))
399
453
  .limit(limit);
400
- const logsQuery = database.syncQB.raw
454
+ const logsQuery = qb.raw
401
455
  .select({
402
456
  blockNumber: PONDER_SYNC.logs.blockNumber,
403
457
  logIndex: PONDER_SYNC.logs.logIndex,
@@ -416,19 +470,19 @@ export const createSyncStore = ({ common, database, }) => {
416
470
  let endClock = startClock();
417
471
  const [blocksRows, transactionsRows, transactionReceiptsRows, logsRows, tracesRows,] = await Promise.all([
418
472
  shouldQueryBlocks
419
- ? database.syncQB.wrap({ label: "select_blocks" }, () => blocksQuery)
473
+ ? qb.wrap({ label: "select_blocks" }, () => blocksQuery)
420
474
  : [],
421
475
  shouldQueryTransactions
422
- ? database.syncQB.wrap({ label: "select_transactions" }, () => transactionsQuery, context)
476
+ ? qb.wrap({ label: "select_transactions" }, () => transactionsQuery, context)
423
477
  : [],
424
478
  shouldQueryTransactionReceipts
425
- ? database.syncQB.wrap({ label: "select_transaction_receipts" }, () => transactionReceiptsQuery, context)
479
+ ? qb.wrap({ label: "select_transaction_receipts" }, () => transactionReceiptsQuery, context)
426
480
  : [],
427
481
  shouldQueryLogs
428
- ? database.syncQB.wrap({ label: "select_logs" }, () => logsQuery, context)
482
+ ? qb.wrap({ label: "select_logs" }, () => logsQuery, context)
429
483
  : [],
430
484
  shouldQueryTraces
431
- ? database.syncQB.wrap({ label: "select_traces" }, () => tracesQuery, context)
485
+ ? qb.wrap({ label: "select_traces" }, () => tracesQuery, context)
432
486
  : [],
433
487
  ]);
434
488
  const supremum = Math.min(blocksRows.length < limit
@@ -618,7 +672,7 @@ export const createSyncStore = ({ common, database, }) => {
618
672
  blockNumber: blockNumber ? BigInt(blockNumber) : undefined,
619
673
  result,
620
674
  }));
621
- await database.syncQB.wrap({ label: "insert_rpc_requests" }, (db) => db
675
+ await qb.wrap({ label: "insert_rpc_requests" }, (db) => db
622
676
  .insert(PONDER_SYNC.rpcRequestResults)
623
677
  .values(values)
624
678
  .onConflictDoNothing({
@@ -657,7 +711,7 @@ export const createSyncStore = ({ common, database, }) => {
657
711
  const maxBlockNumber = Math.max(...blockNumbers);
658
712
  const nonBlockRequestHashes = requestHashes.filter((_, i) => blockNumbersByRequest[i] === undefined);
659
713
  const result = await Promise.all([
660
- database.syncQB.wrap({ label: "select_rpc_requests" }, (db) => db
714
+ qb.wrap({ label: "select_rpc_requests" }, (db) => db
661
715
  .select({
662
716
  request_hash: PONDER_SYNC.rpcRequestResults.requestHash,
663
717
  result: PONDER_SYNC.rpcRequestResults.result,
@@ -666,7 +720,7 @@ export const createSyncStore = ({ common, database, }) => {
666
720
  .where(and(eq(PONDER_SYNC.rpcRequestResults.chainId, BigInt(chainId)), gte(PONDER_SYNC.rpcRequestResults.blockNumber, BigInt(minBlockNumber)), lte(PONDER_SYNC.rpcRequestResults.blockNumber, BigInt(maxBlockNumber)))), context),
667
721
  nonBlockRequestHashes.length === 0
668
722
  ? []
669
- : database.syncQB.wrap({ label: "select_rpc_requests" }, (db) => db
723
+ : qb.wrap({ label: "select_rpc_requests" }, (db) => db
670
724
  .select({
671
725
  request_hash: PONDER_SYNC.rpcRequestResults.requestHash,
672
726
  result: PONDER_SYNC.rpcRequestResults.result,
@@ -683,7 +737,7 @@ export const createSyncStore = ({ common, database, }) => {
683
737
  }
684
738
  return requestHashes.map((requestHash) => results.get(requestHash));
685
739
  }
686
- const result = await database.syncQB.wrap({ label: "select_rpc_requests" }, (db) => db
740
+ const result = await qb.wrap({ label: "select_rpc_requests" }, (db) => db
687
741
  .select({
688
742
  request_hash: PONDER_SYNC.rpcRequestResults.requestHash,
689
743
  result: PONDER_SYNC.rpcRequestResults.result,
@@ -700,11 +754,11 @@ export const createSyncStore = ({ common, database, }) => {
700
754
  if (blocks.length === 0)
701
755
  return;
702
756
  const numbers = blocks.map(({ number }) => BigInt(hexToNumber(number)));
703
- await database.syncQB.wrap({ label: "delete_rpc_requests" }, (db) => db
757
+ await qb.wrap({ label: "delete_rpc_requests" }, (db) => db
704
758
  .delete(PONDER_SYNC.rpcRequestResults)
705
759
  .where(and(eq(PONDER_SYNC.rpcRequestResults.chainId, BigInt(chainId)), inArray(PONDER_SYNC.rpcRequestResults.blockNumber, numbers))), context);
706
760
  },
707
- pruneByChain: async ({ chainId }, context) => database.syncQB.transaction(async (tx) => {
761
+ pruneByChain: async ({ chainId }, context) => qb.transaction(async (tx) => {
708
762
  await tx.wrap({ label: "delete_logs" }, (db) => db
709
763
  .delete(PONDER_SYNC.logs)
710
764
  .where(eq(PONDER_SYNC.logs.chainId, BigInt(chainId)))
@@ -818,12 +872,7 @@ export const traceFilter = (filter) => {
818
872
  conditions.push(eq(PONDER_SYNC.traces.type, filter.callType));
819
873
  }
820
874
  if (filter.functionSelector !== undefined) {
821
- if (Array.isArray(filter.functionSelector)) {
822
- conditions.push(inArray(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
823
- }
824
- else {
825
- conditions.push(eq(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
826
- }
875
+ conditions.push(eq(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
827
876
  }
828
877
  if (filter.fromBlock !== undefined) {
829
878
  conditions.push(gte(PONDER_SYNC.traces.blockNumber, BigInt(filter.fromBlock)));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-store/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-store/index.ts"],"names":[],"mappings":"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"}