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 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/indexing/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/indexing/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import util from "node:util";
2
2
  import { BaseError, IndexingFunctionError, InvalidEventAccessError, ShutdownError, } from '../internal/errors.js';
3
- import { defaultBlockFilterInclude, defaultBlockInclude, defaultLogFilterInclude, defaultTraceFilterInclude, defaultTraceInclude, defaultTransactionFilterInclude, defaultTransactionInclude, defaultTransactionReceiptInclude, defaultTransferFilterInclude, isAddressFactory, requiredBlockFilterInclude, requiredLogFilterInclude, requiredTraceFilterInclude, requiredTransactionFilterInclude, requiredTransactionReceiptInclude, requiredTransferFilterInclude, } from '../runtime/filter.js';
3
+ import { defaultBlockFilterInclude, defaultBlockInclude, defaultLogFilterInclude, defaultTraceFilterInclude, defaultTraceInclude, defaultTransactionFilterInclude, defaultTransactionInclude, defaultTransactionReceiptInclude, defaultTransferFilterInclude, requiredBlockFilterInclude, requiredLogFilterInclude, requiredTraceFilterInclude, requiredTransactionFilterInclude, requiredTransactionReceiptInclude, requiredTransferFilterInclude, } from '../runtime/filter.js';
4
4
  import { ZERO_CHECKPOINT, decodeCheckpoint, encodeCheckpoint, } from '../utils/checkpoint.js';
5
5
  import { dedupe } from '../utils/dedupe.js';
6
6
  import { prettyPrint } from '../utils/print.js';
@@ -11,14 +11,14 @@ const EVENT_LOOP_UPDATE_INTERVAL = 25;
11
11
  const METRICS_UPDATE_INTERVAL = 100;
12
12
  export const getEventCount = (indexingFunctions) => {
13
13
  const eventCount = {};
14
- for (const eventName of Object.keys(indexingFunctions)) {
14
+ for (const { name: eventName } of indexingFunctions) {
15
15
  eventCount[eventName] = 0;
16
16
  }
17
17
  return eventCount;
18
18
  };
19
19
  export const createColumnAccessPattern = ({ indexingBuild, }) => {
20
20
  const columnAccessPattern = new Map();
21
- for (const eventName of Object.keys(indexingBuild.indexingFunctions)) {
21
+ for (const { name: eventName } of indexingBuild.indexingFunctions) {
22
22
  columnAccessPattern.set(eventName, {
23
23
  block: new Set(),
24
24
  trace: new Set(),
@@ -30,72 +30,38 @@ export const createColumnAccessPattern = ({ indexingBuild, }) => {
30
30
  }
31
31
  return columnAccessPattern;
32
32
  };
33
- export const createIndexing = ({ common, indexingBuild: { sources, chains, indexingFunctions }, client, eventCount, indexingErrorHandler, columnAccessPattern, }) => {
33
+ export const createIndexing = ({ common, indexingBuild: { eventCallbacks, setupCallbacks, chains, contracts }, client, indexingErrorHandler, columnAccessPattern, }) => {
34
34
  const context = {
35
35
  chain: { name: undefined, id: undefined },
36
36
  contracts: undefined,
37
37
  client: undefined,
38
38
  db: undefined,
39
39
  };
40
- const chainById = {};
41
40
  const clientByChainId = {};
42
41
  const contractsByChainId = {};
43
- // build chainById
44
- for (const chain of chains) {
45
- chainById[chain.id] = chain;
46
- }
47
42
  // build clientByChainId
48
43
  for (const chain of chains) {
49
44
  clientByChainId[chain.id] = client.getClient(chain);
50
45
  }
51
- // build contractsByChainId
52
- for (const source of sources) {
53
- if (source.type === "block" || source.type === "account")
54
- continue;
55
- let address;
56
- if (source.filter.type === "log") {
57
- const _address = source.filter.address;
58
- if (isAddressFactory(_address) === false &&
59
- Array.isArray(_address) === false &&
60
- _address !== undefined) {
61
- address = _address;
62
- }
63
- }
64
- else {
65
- const _address = source.filter.toAddress;
66
- if (isAddressFactory(_address) === false && _address !== undefined) {
67
- address = _address[0];
68
- }
69
- }
70
- if (contractsByChainId[source.filter.chainId] === undefined) {
71
- contractsByChainId[source.filter.chainId] = {};
72
- }
73
- // Note: multiple sources with the same contract (logs and traces)
74
- // should only create one entry in the `contracts` object
75
- if (contractsByChainId[source.filter.chainId][source.name] !== undefined)
76
- continue;
77
- contractsByChainId[source.filter.chainId][source.name] = {
78
- abi: source.abi,
79
- address,
80
- startBlock: source.filter.fromBlock,
81
- endBlock: source.filter.toBlock,
82
- };
46
+ for (let i = 0; i < chains.length; i++) {
47
+ const chain = chains[i];
48
+ contractsByChainId[chain.id] = contracts[i];
83
49
  }
84
- const updateCompletedEvents = () => {
85
- for (const event of Object.keys(eventCount)) {
86
- const metricLabel = { event };
87
- common.metrics.ponder_indexing_completed_events.set(metricLabel, eventCount[event]);
88
- }
89
- };
90
- const executeSetup = async ({ event, }) => {
91
- const indexingFunction = indexingFunctions[event.name];
92
- const metricLabel = { event: event.name };
50
+ const executeSetup = async (event) => {
51
+ const metricLabel = { event: event.setupCallback.name };
93
52
  try {
94
- context.chain.id = event.chainId;
95
- context.chain.name = chainById[event.chainId].name;
96
- context.contracts = contractsByChainId[event.chainId];
53
+ context.chain.id = event.chain.id;
54
+ context.chain.name = event.chain.name;
55
+ context.contracts = contractsByChainId[event.chain.id];
97
56
  const endClock = startClock();
98
- await indexingFunction({ context });
57
+ await event.setupCallback.fn({ context });
58
+ // Note: Check `getRetryableError` to handle user-code catching errors
59
+ // from the indexing store.
60
+ if (indexingErrorHandler.getRetryableError()) {
61
+ const retryableError = indexingErrorHandler.getRetryableError();
62
+ indexingErrorHandler.clearRetryableError();
63
+ throw retryableError;
64
+ }
99
65
  common.metrics.ponder_indexing_function_duration.observe(metricLabel, endClock());
100
66
  }
101
67
  catch (_error) {
@@ -105,7 +71,7 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
105
71
  if (indexingErrorHandler.getRetryableError()) {
106
72
  const retryableError = indexingErrorHandler.getRetryableError();
107
73
  indexingErrorHandler.clearRetryableError();
108
- throw retryableError;
74
+ error = retryableError;
109
75
  }
110
76
  if (common.shutdown.isKilled) {
111
77
  throw new ShutdownError();
@@ -115,9 +81,9 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
115
81
  const decodedCheckpoint = decodeCheckpoint(event.checkpoint);
116
82
  common.logger.error({
117
83
  msg: "Error while processing event",
118
- event: event.name,
119
- chain: chainById[event.chainId].name,
120
- chain_id: event.chainId,
84
+ event: event.setupCallback.name,
85
+ chain: event.chain.name,
86
+ chain_id: event.chain.id,
121
87
  block_number: decodedCheckpoint.blockNumber,
122
88
  error,
123
89
  });
@@ -127,25 +93,24 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
127
93
  }
128
94
  throw error;
129
95
  }
130
- // Note: Check `getRetryableError` to handle user-code catching errors
131
- // from the indexing store.
132
- if (indexingErrorHandler.getRetryableError()) {
133
- const retryableError = indexingErrorHandler.getRetryableError();
134
- indexingErrorHandler.clearRetryableError();
135
- throw retryableError;
136
- }
137
96
  };
138
97
  // metric label for "ponder_indexing_function_duration"
139
98
  const executeEvent = async (event) => {
140
- const indexingFunction = indexingFunctions[event.name];
141
- const metricLabel = { event: event.name };
99
+ const metricLabel = { event: event.eventCallback.name };
142
100
  try {
143
- context.chain.id = event.chainId;
144
- context.chain.name = chainById[event.chainId].name;
145
- context.contracts = contractsByChainId[event.chainId];
101
+ context.chain.id = event.chain.id;
102
+ context.chain.name = event.chain.name;
103
+ context.contracts = contractsByChainId[event.chain.id];
146
104
  const endClock = startClock();
147
- await indexingFunction({ event: event.event, context });
105
+ await event.eventCallback.fn({ event: event.event, context });
148
106
  common.metrics.ponder_indexing_function_duration.observe(metricLabel, endClock());
107
+ // Note: Check `getRetryableError` to handle user-code catching errors
108
+ // from the indexing store.
109
+ if (indexingErrorHandler.getRetryableError()) {
110
+ const retryableError = indexingErrorHandler.getRetryableError();
111
+ indexingErrorHandler.clearRetryableError();
112
+ throw retryableError;
113
+ }
149
114
  }
150
115
  catch (_error) {
151
116
  let error = _error instanceof Error ? _error : new Error(String(_error));
@@ -154,7 +119,7 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
154
119
  if (indexingErrorHandler.getRetryableError()) {
155
120
  const retryableError = indexingErrorHandler.getRetryableError();
156
121
  indexingErrorHandler.clearRetryableError();
157
- throw retryableError;
122
+ error = retryableError;
158
123
  }
159
124
  if (common.shutdown.isKilled) {
160
125
  throw new ShutdownError();
@@ -167,9 +132,9 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
167
132
  const decodedCheckpoint = decodeCheckpoint(event.checkpoint);
168
133
  common.logger.error({
169
134
  msg: "Error while processing event",
170
- event: event.name,
171
- chain: chainById[event.chainId].name,
172
- chain_id: event.chainId,
135
+ event: event.eventCallback.name,
136
+ chain: event.chain.name,
137
+ chain_id: event.chain.id,
173
138
  block_number: decodedCheckpoint.blockNumber,
174
139
  error,
175
140
  });
@@ -179,13 +144,6 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
179
144
  }
180
145
  throw error;
181
146
  }
182
- // Note: Check `getRetryableError` to handle user-code catching errors
183
- // from the indexing store.
184
- if (indexingErrorHandler.getRetryableError()) {
185
- const retryableError = indexingErrorHandler.getRetryableError();
186
- indexingErrorHandler.clearRetryableError();
187
- throw retryableError;
188
- }
189
147
  };
190
148
  const resetFilterInclude = (eventName) => {
191
149
  const filters = perEventFilters.get(eventName);
@@ -230,59 +188,36 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
230
188
  const transactionReceiptProxy = createEventProxy(columnAccessPattern, "transactionReceipt", indexingErrorHandler, resetFilterInclude);
231
189
  const traceProxy = createEventProxy(columnAccessPattern, "trace", indexingErrorHandler, resetFilterInclude);
232
190
  // Note: There is no `log` proxy because all log columns are required.
233
- // Note: Filters and indexing functions have a many-to-many relationship.
234
- const perFilterEventNames = new Map();
191
+ // Note: Indexing functions map to one or more filters.
235
192
  const perEventFilters = new Map();
236
193
  const isFilterResolved = new Map();
237
- for (const eventName of Object.keys(indexingFunctions)) {
238
- let sourceName;
239
- if (eventName.includes(":")) {
240
- [sourceName] = eventName.split(":");
194
+ for (const eventCallback of eventCallbacks.flat()) {
195
+ if (perEventFilters.has(eventCallback.name) === false) {
196
+ perEventFilters.set(eventCallback.name, [eventCallback.filter]);
241
197
  }
242
198
  else {
243
- [sourceName] = eventName.split(".");
244
- }
245
- const _sources = sources.filter((s) => s.name === sourceName);
246
- for (const source of _sources) {
247
- if (perFilterEventNames.has(source.filter) === false) {
248
- perFilterEventNames.set(source.filter, []);
249
- }
250
- perFilterEventNames.get(source.filter).push(eventName);
199
+ perEventFilters.get(eventCallback.name).push(eventCallback.filter);
251
200
  }
252
- perEventFilters.set(eventName, _sources.map((s) => s.filter));
253
- }
254
- for (const source of sources) {
255
- isFilterResolved.set(source.filter, false);
201
+ isFilterResolved.set(eventCallback.filter, false);
256
202
  }
257
203
  return {
258
204
  async processSetupEvents({ db }) {
259
205
  context.db = db;
260
- for (const eventName of Object.keys(indexingFunctions)) {
261
- if (!eventName.endsWith(":setup"))
262
- continue;
263
- const [contractName] = eventName.split(":");
264
- for (const chain of chains) {
265
- const source = sources.find((s) => s.type === "contract" &&
266
- s.name === contractName &&
267
- s.filter.chainId === chain.id);
268
- if (source === undefined)
269
- continue;
270
- const event = {
271
- type: "setup",
272
- chainId: chain.id,
273
- checkpoint: encodeCheckpoint({
274
- ...ZERO_CHECKPOINT,
275
- chainId: BigInt(chain.id),
276
- blockNumber: BigInt(source.filter.fromBlock ?? 0),
277
- }),
278
- name: eventName,
279
- block: BigInt(source.filter.fromBlock ?? 0),
280
- };
281
- client.event = event;
282
- context.client = clientByChainId[chain.id];
283
- eventCount[eventName]++;
284
- await executeSetup({ event });
285
- }
206
+ for (const setupCallback of setupCallbacks.flat()) {
207
+ const event = {
208
+ type: "setup",
209
+ chain: setupCallback.chain,
210
+ setupCallback,
211
+ checkpoint: encodeCheckpoint({
212
+ ...ZERO_CHECKPOINT,
213
+ chainId: BigInt(setupCallback.chain.id),
214
+ blockNumber: BigInt(setupCallback.block ?? 0),
215
+ }),
216
+ block: BigInt(setupCallback.block ?? 0),
217
+ };
218
+ client.event = event;
219
+ context.client = clientByChainId[setupCallback.chain.id];
220
+ await executeSetup(event);
286
221
  }
287
222
  },
288
223
  async processHistoricalEvents({ events, db, cache, updateIndexingSeconds, }) {
@@ -292,29 +227,29 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
292
227
  for (let i = 0; i < events.length; i++) {
293
228
  const event = events[i];
294
229
  client.event = event;
295
- context.client = clientByChainId[event.chainId];
230
+ context.client = clientByChainId[event.chain.id];
296
231
  cache.event = event;
297
232
  // Note: Create a new event object instead of mutuating the original one because
298
233
  // the event object could be reused across multiple indexing functions.
299
234
  const proxyEvent = { ...event.event };
300
235
  switch (event.type) {
301
236
  case "block": {
302
- blockProxy.eventName = event.name;
237
+ blockProxy.eventName = event.eventCallback.name;
303
238
  blockProxy.underlying = event.event.block;
304
239
  proxyEvent.block = blockProxy.proxy;
305
240
  break;
306
241
  }
307
242
  case "transaction": {
308
- blockProxy.eventName = event.name;
243
+ blockProxy.eventName = event.eventCallback.name;
309
244
  blockProxy.underlying = event.event.block;
310
245
  proxyEvent.block = blockProxy.proxy;
311
- transactionProxy.eventName = event.name;
246
+ transactionProxy.eventName = event.eventCallback.name;
312
247
  transactionProxy.underlying = event.event
313
248
  .transaction;
314
249
  // @ts-expect-error
315
250
  proxyEvent.transaction = transactionProxy.proxy;
316
251
  if (event.event.transactionReceipt !== undefined) {
317
- transactionReceiptProxy.eventName = event.name;
252
+ transactionReceiptProxy.eventName = event.eventCallback.name;
318
253
  transactionReceiptProxy.underlying = event.event
319
254
  .transactionReceipt;
320
255
  // @ts-expect-error
@@ -324,40 +259,40 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
324
259
  }
325
260
  case "trace":
326
261
  case "transfer": {
327
- blockProxy.eventName = event.name;
262
+ blockProxy.eventName = event.eventCallback.name;
328
263
  blockProxy.underlying = event.event.block;
329
264
  proxyEvent.block = blockProxy.proxy;
330
- transactionProxy.eventName = event.name;
265
+ transactionProxy.eventName = event.eventCallback.name;
331
266
  transactionProxy.underlying = event.event
332
267
  .transaction;
333
268
  // @ts-expect-error
334
269
  proxyEvent.transaction = transactionProxy.proxy;
335
270
  if (event.event.transactionReceipt !== undefined) {
336
- transactionReceiptProxy.eventName = event.name;
271
+ transactionReceiptProxy.eventName = event.eventCallback.name;
337
272
  transactionReceiptProxy.underlying = event.event
338
273
  .transactionReceipt;
339
274
  // @ts-expect-error
340
275
  proxyEvent.transactionReceipt = transactionReceiptProxy.proxy;
341
276
  }
342
- traceProxy.eventName = event.name;
277
+ traceProxy.eventName = event.eventCallback.name;
343
278
  traceProxy.underlying = event.event.trace;
344
279
  // @ts-expect-error
345
280
  proxyEvent.trace = traceProxy.proxy;
346
281
  break;
347
282
  }
348
283
  case "log": {
349
- blockProxy.eventName = event.name;
284
+ blockProxy.eventName = event.eventCallback.name;
350
285
  blockProxy.underlying = event.event.block;
351
286
  proxyEvent.block = blockProxy.proxy;
352
287
  if (event.event.transaction !== undefined) {
353
- transactionProxy.eventName = event.name;
288
+ transactionProxy.eventName = event.eventCallback.name;
354
289
  transactionProxy.underlying = event.event
355
290
  .transaction;
356
291
  // @ts-expect-error
357
292
  proxyEvent.transaction = transactionProxy.proxy;
358
293
  }
359
294
  if (event.event.transactionReceipt !== undefined) {
360
- transactionReceiptProxy.eventName = event.name;
295
+ transactionReceiptProxy.eventName = event.eventCallback.name;
361
296
  transactionReceiptProxy.underlying = event.event
362
297
  .transactionReceipt;
363
298
  // @ts-expect-error
@@ -368,8 +303,8 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
368
303
  }
369
304
  // @ts-expect-error
370
305
  await executeEvent({ ...event, event: proxyEvent });
371
- eventCount[event.name]++;
372
- columnAccessPattern.get(event.name).count++;
306
+ common.metrics.ponder_indexing_completed_events.inc({ event: event.eventCallback.name }, 1);
307
+ columnAccessPattern.get(event.eventCallback.name).count++;
373
308
  const now = performance.now();
374
309
  if (now - lastEventLoopUpdate > EVENT_LOOP_UPDATE_INTERVAL) {
375
310
  lastEventLoopUpdate = now;
@@ -377,43 +312,39 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
377
312
  }
378
313
  if (now - lastMetricsUpdate > METRICS_UPDATE_INTERVAL) {
379
314
  lastMetricsUpdate = now;
380
- updateCompletedEvents();
381
- updateIndexingSeconds(event, chainById[event.chainId]);
315
+ updateIndexingSeconds(event, event.chain);
382
316
  }
383
317
  }
384
318
  let isEveryFilterResolvedBefore = true;
385
319
  let isEveryFilterResolvedAfter = true;
386
- for (const source of sources) {
387
- const eventNames = perFilterEventNames.get(source.filter);
388
- if (isFilterResolved.get(source.filter))
320
+ for (const eventCallback of eventCallbacks.flat()) {
321
+ if (isFilterResolved.get(eventCallback.filter))
389
322
  continue;
390
323
  isEveryFilterResolvedBefore = false;
391
- if (eventNames.some((eventName) => columnAccessPattern.get(eventName).count < 100)) {
324
+ if (columnAccessPattern.get(eventCallback.name).count < 100) {
392
325
  isEveryFilterResolvedAfter = false;
393
326
  continue;
394
327
  }
395
- isFilterResolved.set(source.filter, true);
328
+ isFilterResolved.set(eventCallback.filter, true);
396
329
  const filterInclude = [];
397
- for (const eventName of eventNames) {
398
- const columnAccessProfile = columnAccessPattern.get(eventName);
399
- columnAccessProfile.resolved = true;
400
- for (const column of columnAccessProfile.block) {
401
- filterInclude.push(`block.${column}`);
402
- }
403
- for (const column of columnAccessProfile.transaction) {
404
- // @ts-expect-error
405
- filterInclude.push(`transaction.${column}`);
406
- }
407
- for (const column of columnAccessProfile.transactionReceipt) {
408
- // @ts-expect-error
409
- filterInclude.push(`transactionReceipt.${column}`);
410
- }
411
- for (const column of columnAccessProfile.trace) {
412
- // @ts-expect-error
413
- filterInclude.push(`trace.${column}`);
414
- }
330
+ const columnAccessProfile = columnAccessPattern.get(eventCallback.name);
331
+ columnAccessProfile.resolved = true;
332
+ for (const column of columnAccessProfile.block) {
333
+ filterInclude.push(`block.${column}`);
334
+ }
335
+ for (const column of columnAccessProfile.transaction) {
336
+ // @ts-expect-error
337
+ filterInclude.push(`transaction.${column}`);
338
+ }
339
+ for (const column of columnAccessProfile.transactionReceipt) {
340
+ // @ts-expect-error
341
+ filterInclude.push(`transactionReceipt.${column}`);
342
+ }
343
+ for (const column of columnAccessProfile.trace) {
344
+ // @ts-expect-error
345
+ filterInclude.push(`trace.${column}`);
415
346
  }
416
- switch (source.filter.type) {
347
+ switch (eventCallback.filter.type) {
417
348
  case "block": {
418
349
  filterInclude.push(...requiredBlockFilterInclude);
419
350
  break;
@@ -426,33 +357,36 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
426
357
  case "trace": {
427
358
  // @ts-expect-error
428
359
  filterInclude.push(...requiredTraceFilterInclude);
429
- if (source.filter.hasTransactionReceipt) {
360
+ if (eventCallback.filter.hasTransactionReceipt) {
361
+ filterInclude.push(
430
362
  // @ts-expect-error
431
- filterInclude.push(...requiredTransactionReceiptInclude);
363
+ ...requiredTransactionReceiptInclude.map((value) => `transactionReceipt.${value}`));
432
364
  }
433
365
  break;
434
366
  }
435
367
  case "log": {
436
368
  // @ts-expect-error
437
369
  filterInclude.push(...requiredLogFilterInclude);
438
- if (source.filter.hasTransactionReceipt) {
370
+ if (eventCallback.filter.hasTransactionReceipt) {
371
+ filterInclude.push(
439
372
  // @ts-expect-error
440
- filterInclude.push(...requiredTransactionReceiptInclude);
373
+ ...requiredTransactionReceiptInclude.map((value) => `transactionReceipt.${value}`));
441
374
  }
442
375
  break;
443
376
  }
444
377
  case "transfer": {
445
378
  // @ts-expect-error
446
379
  filterInclude.push(...requiredTransferFilterInclude);
447
- if (source.filter.hasTransactionReceipt) {
380
+ if (eventCallback.filter.hasTransactionReceipt) {
381
+ filterInclude.push(
448
382
  // @ts-expect-error
449
- filterInclude.push(...requiredTransactionReceiptInclude);
383
+ ...requiredTransactionReceiptInclude.map((value) => `transactionReceipt.${value}`));
450
384
  }
451
385
  break;
452
386
  }
453
387
  }
454
388
  // @ts-expect-error
455
- source.filter.include = dedupe(filterInclude);
389
+ eventCallback.filter.include = dedupe(filterInclude);
456
390
  }
457
391
  if (isEveryFilterResolvedBefore === false && isEveryFilterResolvedAfter) {
458
392
  const blockInclude = new Set();
@@ -486,9 +420,8 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
486
420
  }, ["total_access_count"]);
487
421
  }
488
422
  await new Promise(setImmediate);
489
- updateCompletedEvents();
490
423
  if (events.length > 0) {
491
- updateIndexingSeconds(events[events.length - 1], chainById[events[events.length - 1].chainId]);
424
+ updateIndexingSeconds(events[events.length - 1], events[events.length - 1].chain);
492
425
  }
493
426
  },
494
427
  async processRealtimeEvents({ events, db }) {
@@ -496,11 +429,10 @@ export const createIndexing = ({ common, indexingBuild: { sources, chains, index
496
429
  for (let i = 0; i < events.length; i++) {
497
430
  const event = events[i];
498
431
  client.event = event;
499
- context.client = clientByChainId[event.chainId];
500
- eventCount[event.name]++;
432
+ context.client = clientByChainId[event.chain.id];
433
+ common.metrics.ponder_indexing_completed_events.inc({ event: event.eventCallback.name }, 1);
501
434
  await executeEvent(event);
502
435
  }
503
- updateCompletedEvents();
504
436
  },
505
437
  };
506
438
  };