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,50 +1,50 @@
1
1
  import { EVENT_TYPES, MAX_CHECKPOINT, ZERO_CHECKPOINT, encodeCheckpoint, } from '../utils/checkpoint.js';
2
2
  import { decodeEventLog } from '../utils/decodeEventLog.js';
3
3
  import { toLowerCase } from '../utils/lowercase.js';
4
- import { never } from '../utils/never.js';
5
- import { decodeFunctionData, decodeFunctionResult, hexToBigInt, hexToNumber, } from "viem";
4
+ import { decodeFunctionData, decodeFunctionResult, hexToBigInt, hexToNumber, toEventSelector, toFunctionSelector, } from "viem";
6
5
  import { isAddressMatched, isBlockFilterMatched, isLogFilterMatched, isTraceFilterMatched, isTransactionFilterMatched, isTransferFilterMatched, } from "./filter.js";
7
6
  import { isAddressFactory } from "./filter.js";
8
7
  /**
9
8
  * Create `RawEvent`s from raw data types
10
9
  */
11
- export const buildEvents = ({ sources, blocks, logs, transactions, transactionReceipts, traces, childAddresses, chainId, }) => {
10
+ export const buildEvents = ({ eventCallbacks, blocks, logs, transactions, transactionReceipts, traces, childAddresses, chainId, }) => {
12
11
  const events = [];
13
- const blockSourceIndexes = [];
14
- const transactionSourceIndexes = [];
15
- const logSourceIndexes = [];
16
- const traceSourceIndexes = [];
17
- const transferSourceIndexes = [];
18
- for (let i = 0; i < sources.length; i++) {
19
- const source = sources[i];
20
- if (chainId !== source.filter.chainId)
12
+ const blockEventCallbackIndexes = [];
13
+ const transactionEventCallbackIndexes = [];
14
+ const logEventCallbackIndexes = [];
15
+ const traceEventCallbackIndexes = [];
16
+ const transferEventCallbackIndexes = [];
17
+ for (let i = 0; i < eventCallbacks.length; i++) {
18
+ const eventCallback = eventCallbacks[i];
19
+ if (chainId !== eventCallback.filter.chainId)
21
20
  continue;
22
- if (source.filter.type === "block") {
23
- blockSourceIndexes.push(i);
21
+ if (eventCallback.filter.type === "block") {
22
+ blockEventCallbackIndexes.push(i);
24
23
  }
25
- else if (source.filter.type === "transaction") {
26
- transactionSourceIndexes.push(i);
24
+ else if (eventCallback.filter.type === "transaction") {
25
+ transactionEventCallbackIndexes.push(i);
27
26
  }
28
- else if (source.filter.type === "log") {
29
- logSourceIndexes.push(i);
27
+ else if (eventCallback.filter.type === "log") {
28
+ logEventCallbackIndexes.push(i);
30
29
  }
31
- else if (source.filter.type === "trace") {
32
- traceSourceIndexes.push(i);
30
+ else if (eventCallback.filter.type === "trace") {
31
+ traceEventCallbackIndexes.push(i);
33
32
  }
34
- else if (source.filter.type === "transfer") {
35
- transferSourceIndexes.push(i);
33
+ else if (eventCallback.filter.type === "transfer") {
34
+ transferEventCallbackIndexes.push(i);
36
35
  }
37
36
  }
38
37
  let blocksIndex = 0;
39
38
  let transactionsIndex = 0;
40
39
  let transactionReceiptsIndex = 0;
41
40
  for (const block of blocks) {
42
- for (const blockSourceIndex of blockSourceIndexes) {
43
- const filter = sources[blockSourceIndex].filter;
41
+ for (const blockEventCallbackIndex of blockEventCallbackIndexes) {
42
+ const filter = eventCallbacks[blockEventCallbackIndex]
43
+ .filter;
44
44
  if (isBlockFilterMatched({ filter, block })) {
45
45
  events.push({
46
46
  chainId: filter.chainId,
47
- sourceIndex: blockSourceIndex,
47
+ eventCallbackIndex: blockEventCallbackIndex,
48
48
  checkpoint: encodeCheckpoint({
49
49
  blockTimestamp: block.timestamp,
50
50
  chainId: filter.chainId,
@@ -83,8 +83,8 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
83
83
  transactionReceiptsIndex++;
84
84
  }
85
85
  const transactionReceipt = transactionReceipts[transactionReceiptsIndex];
86
- for (const transactionSourceIndex of transactionSourceIndexes) {
87
- const filter = sources[transactionSourceIndex]
86
+ for (const transactionEventCallbackIndex of transactionEventCallbackIndexes) {
87
+ const filter = eventCallbacks[transactionEventCallbackIndex]
88
88
  .filter;
89
89
  if (isTransactionFilterMatched({ filter, transaction }) &&
90
90
  (isAddressFactory(filter.fromAddress)
@@ -109,7 +109,7 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
109
109
  }
110
110
  events.push({
111
111
  chainId: filter.chainId,
112
- sourceIndex: transactionSourceIndex,
112
+ eventCallbackIndex: transactionEventCallbackIndex,
113
113
  checkpoint: encodeCheckpoint({
114
114
  blockTimestamp: block.timestamp,
115
115
  chainId: filter.chainId,
@@ -173,8 +173,9 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
173
173
  transactionIndex) {
174
174
  transactionReceipt = transactionReceipts[transactionReceiptsIndex];
175
175
  }
176
- for (const traceSourceIndex of traceSourceIndexes) {
177
- const filter = sources[traceSourceIndex].filter;
176
+ for (const traceEventCallbackIndex of traceEventCallbackIndexes) {
177
+ const filter = eventCallbacks[traceEventCallbackIndex]
178
+ .filter;
178
179
  if (isTraceFilterMatched({ filter, trace, block }) &&
179
180
  (isAddressFactory(filter.fromAddress)
180
181
  ? isAddressMatched({
@@ -199,7 +200,7 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
199
200
  }
200
201
  events.push({
201
202
  chainId: filter.chainId,
202
- sourceIndex: traceSourceIndex,
203
+ eventCallbackIndex: traceEventCallbackIndex,
203
204
  checkpoint: encodeCheckpoint({
204
205
  blockTimestamp: block.timestamp,
205
206
  chainId: filter.chainId,
@@ -218,8 +219,9 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
218
219
  });
219
220
  }
220
221
  }
221
- for (const transferSourceIndex of transferSourceIndexes) {
222
- const filter = sources[transferSourceIndex].filter;
222
+ for (const transferEventCallbackIndex of transferEventCallbackIndexes) {
223
+ const filter = eventCallbacks[transferEventCallbackIndex]
224
+ .filter;
223
225
  if (isTransferFilterMatched({ filter, trace, block }) &&
224
226
  (isAddressFactory(filter.fromAddress)
225
227
  ? isAddressMatched({
@@ -241,7 +243,7 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
241
243
  }
242
244
  events.push({
243
245
  chainId: filter.chainId,
244
- sourceIndex: transferSourceIndex,
246
+ eventCallbackIndex: transferEventCallbackIndex,
245
247
  checkpoint: encodeCheckpoint({
246
248
  blockTimestamp: block.timestamp,
247
249
  chainId: filter.chainId,
@@ -306,8 +308,8 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
306
308
  transactionIndex) {
307
309
  transactionReceipt = transactionReceipts[transactionReceiptsIndex];
308
310
  }
309
- for (const logSourceIndex of logSourceIndexes) {
310
- const filter = sources[logSourceIndex].filter;
311
+ for (const logEventCallbackIndex of logEventCallbackIndexes) {
312
+ const filter = eventCallbacks[logEventCallbackIndex].filter;
311
313
  if (isLogFilterMatched({ filter, log }) &&
312
314
  (isAddressFactory(filter.address)
313
315
  ? isAddressMatched({
@@ -321,7 +323,7 @@ export const buildEvents = ({ sources, blocks, logs, transactions, transactionRe
321
323
  }
322
324
  events.push({
323
325
  chainId: filter.chainId,
324
- sourceIndex: logSourceIndex,
326
+ eventCallbackIndex: logEventCallbackIndex,
325
327
  checkpoint: encodeCheckpoint({
326
328
  blockTimestamp: block.timestamp,
327
329
  chainId: filter.chainId,
@@ -350,11 +352,11 @@ export const splitEvents = (events) => {
350
352
  if (hash === undefined || hash !== event.event.block.hash) {
351
353
  result.push({
352
354
  events: [],
353
- chainId: event.chainId,
355
+ chainId: event.chain.id,
354
356
  checkpoint: encodeCheckpoint({
355
357
  ...MAX_CHECKPOINT,
356
358
  blockTimestamp: event.event.block.timestamp,
357
- chainId: BigInt(event.chainId),
359
+ chainId: BigInt(event.chain.id),
358
360
  blockNumber: event.event.block.number,
359
361
  }),
360
362
  });
@@ -364,7 +366,7 @@ export const splitEvents = (events) => {
364
366
  }
365
367
  return result;
366
368
  };
367
- export const decodeEvents = (common, sources, rawEvents) => {
369
+ export const decodeEvents = (common, chain, eventCallbacks, rawEvents) => {
368
370
  const events = [];
369
371
  const logDecodeFailureSelectors = new Set();
370
372
  let logDecodeFailureCount = 0;
@@ -373,184 +375,149 @@ export const decodeEvents = (common, sources, rawEvents) => {
373
375
  let traceDecodeFailureCount = 0;
374
376
  let traceDecodeSuccessCount = 0;
375
377
  for (const event of rawEvents) {
376
- const source = sources[event.sourceIndex];
377
- switch (source.type) {
378
- case "contract": {
379
- switch (source.filter.type) {
380
- case "log": {
381
- const selector = event.log.topics[0];
382
- if (selector === undefined) {
383
- break;
384
- }
385
- const abiItem = source.abiEvents.bySelector[selector];
386
- if (abiItem === undefined) {
387
- break;
388
- }
389
- const { safeName, item } = abiItem;
390
- let args;
391
- try {
392
- args = decodeEventLog({
393
- abiItem: item,
394
- data: event.log.data,
395
- topics: event.log.topics,
396
- });
397
- logDecodeSuccessCount++;
398
- }
399
- catch (err) {
400
- logDecodeFailureCount++;
401
- if (!logDecodeFailureSelectors.has(selector)) {
402
- logDecodeFailureSelectors.add(selector);
403
- common.logger.debug({
404
- msg: "Failed to decode matched event log using provided ABI item",
405
- chain: source.chain.name,
406
- chain_id: source.chain.id,
407
- event: safeName,
408
- block_number: event?.block?.number ?? "unknown",
409
- log_index: event.log?.logIndex,
410
- data: event.log?.data,
411
- topics: JSON.stringify(event.log?.topics),
412
- });
413
- }
414
- break;
415
- }
416
- events.push({
417
- type: "log",
418
- chainId: event.chainId,
419
- checkpoint: event.checkpoint,
420
- name: `${source.name}:${safeName}`,
421
- event: {
422
- id: event.checkpoint,
423
- args,
424
- log: event.log,
425
- block: event.block,
426
- transaction: event.transaction,
427
- transactionReceipt: event.transactionReceipt,
428
- },
429
- });
430
- break;
431
- }
432
- case "trace": {
433
- const selector = event
434
- .trace.input.slice(0, 10)
435
- .toLowerCase();
436
- const abiItem = source.abiFunctions.bySelector[selector];
437
- if (abiItem === undefined) {
438
- break;
439
- }
440
- const { item, safeName } = abiItem;
441
- let decodedData;
442
- let decodedResult;
443
- try {
444
- decodedData = decodeFunctionData({
445
- abi: [item],
446
- data: event.trace.input,
447
- });
448
- decodedResult = decodeFunctionResult({
449
- abi: [item],
450
- data: event.trace.output ?? "0x",
451
- functionName: decodedData.functionName,
452
- });
453
- traceDecodeSuccessCount++;
454
- }
455
- catch (err) {
456
- traceDecodeFailureCount++;
457
- if (!traceDecodeFailureSelectors.has(selector)) {
458
- traceDecodeFailureSelectors.add(selector);
459
- common.logger.debug({
460
- msg: "Failed to decode matched call trace using provided ABI item",
461
- chain: source.chain.name,
462
- chain_id: source.chain.id,
463
- function: safeName,
464
- block_number: event?.block?.number ?? "unknown",
465
- transaction_index: event.transaction?.transactionIndex,
466
- trace_index: event.trace?.traceIndex,
467
- input: event.trace?.input,
468
- output: event.trace?.output,
469
- });
470
- }
471
- break;
472
- }
473
- events.push({
474
- type: "trace",
475
- chainId: event.chainId,
476
- checkpoint: event.checkpoint,
477
- // NOTE: `safename` includes ()
478
- name: `${source.name}.${safeName}`,
479
- event: {
480
- id: event.checkpoint,
481
- args: decodedData.args,
482
- result: decodedResult,
483
- trace: event.trace,
484
- block: event.block,
485
- transaction: event.transaction,
486
- transactionReceipt: event.transactionReceipt,
487
- },
488
- });
489
- break;
490
- }
491
- default:
492
- never(source.filter);
493
- }
494
- break;
378
+ const eventCallback = eventCallbacks[event.eventCallbackIndex];
379
+ if (eventCallback.type === "contract" &&
380
+ eventCallback.filter.type === "log") {
381
+ let args;
382
+ try {
383
+ args = decodeEventLog({
384
+ abiItem: eventCallback.abiItem,
385
+ data: event.log.data,
386
+ topics: event.log.topics,
387
+ });
388
+ logDecodeSuccessCount++;
495
389
  }
496
- case "account": {
497
- switch (source.filter.type) {
498
- case "transaction": {
499
- const isFrom = source.filter.toAddress === undefined;
500
- events.push({
501
- type: "transaction",
502
- chainId: event.chainId,
503
- checkpoint: event.checkpoint,
504
- name: `${source.name}:transaction:${isFrom ? "from" : "to"}`,
505
- event: {
506
- id: event.checkpoint,
507
- block: event.block,
508
- transaction: event.transaction,
509
- transactionReceipt: event.transactionReceipt,
510
- },
511
- });
512
- break;
513
- }
514
- case "transfer": {
515
- const isFrom = source.filter.toAddress === undefined;
516
- events.push({
517
- type: "transfer",
518
- chainId: event.chainId,
519
- checkpoint: event.checkpoint,
520
- name: `${source.name}:transfer:${isFrom ? "from" : "to"}`,
521
- event: {
522
- id: event.checkpoint,
523
- transfer: {
524
- from: event.trace.from,
525
- to: event.trace.to,
526
- value: event.trace.value,
527
- },
528
- block: event.block,
529
- transaction: event.transaction,
530
- transactionReceipt: event.transactionReceipt,
531
- trace: event.trace,
532
- },
533
- });
534
- break;
535
- }
390
+ catch (err) {
391
+ logDecodeFailureCount++;
392
+ const selector = toEventSelector(eventCallback.abiItem);
393
+ if (!logDecodeFailureSelectors.has(selector)) {
394
+ logDecodeFailureSelectors.add(selector);
395
+ common.logger.debug({
396
+ msg: "Failed to decode matched event log using provided ABI item",
397
+ chain: eventCallback.chain.name,
398
+ chain_id: eventCallback.chain.id,
399
+ event: eventCallback.name,
400
+ block_number: event?.block?.number ?? "unknown",
401
+ log_index: event.log?.logIndex,
402
+ data: event.log?.data,
403
+ topics: JSON.stringify(event.log?.topics),
404
+ });
536
405
  }
537
- break;
406
+ continue;
538
407
  }
539
- case "block": {
540
- events.push({
541
- type: "block",
542
- chainId: event.chainId,
543
- checkpoint: event.checkpoint,
544
- name: `${source.name}:block`,
545
- event: {
546
- id: event.checkpoint,
547
- block: event.block,
548
- },
408
+ events.push({
409
+ type: "log",
410
+ checkpoint: event.checkpoint,
411
+ chain,
412
+ eventCallback,
413
+ event: {
414
+ id: event.checkpoint,
415
+ args,
416
+ log: event.log,
417
+ block: event.block,
418
+ transaction: event.transaction,
419
+ transactionReceipt: event.transactionReceipt,
420
+ },
421
+ });
422
+ }
423
+ else if (eventCallback.type === "contract" &&
424
+ eventCallback.filter.type === "trace") {
425
+ let decodedData;
426
+ let decodedResult;
427
+ try {
428
+ decodedData = decodeFunctionData({
429
+ abi: [eventCallback.abiItem],
430
+ data: event.trace.input,
549
431
  });
550
- break;
432
+ decodedResult = decodeFunctionResult({
433
+ abi: [eventCallback.abiItem],
434
+ data: event.trace.output ?? "0x",
435
+ functionName: decodedData.functionName,
436
+ });
437
+ traceDecodeSuccessCount++;
551
438
  }
552
- default:
553
- never(source);
439
+ catch (err) {
440
+ traceDecodeFailureCount++;
441
+ const selector = toFunctionSelector(eventCallback.abiItem);
442
+ if (!traceDecodeFailureSelectors.has(selector)) {
443
+ traceDecodeFailureSelectors.add(selector);
444
+ common.logger.debug({
445
+ msg: "Failed to decode matched call trace using provided ABI item",
446
+ chain: eventCallback.chain.name,
447
+ chain_id: eventCallback.chain.id,
448
+ function: eventCallback.name,
449
+ block_number: event?.block?.number ?? "unknown",
450
+ transaction_index: event.transaction?.transactionIndex,
451
+ trace_index: event.trace?.traceIndex,
452
+ input: event.trace?.input,
453
+ output: event.trace?.output,
454
+ });
455
+ }
456
+ continue;
457
+ }
458
+ events.push({
459
+ type: "trace",
460
+ checkpoint: event.checkpoint,
461
+ chain,
462
+ eventCallback,
463
+ event: {
464
+ id: event.checkpoint,
465
+ args: decodedData.args,
466
+ result: decodedResult,
467
+ trace: event.trace,
468
+ block: event.block,
469
+ transaction: event.transaction,
470
+ transactionReceipt: event.transactionReceipt,
471
+ },
472
+ });
473
+ }
474
+ else if (eventCallback.type === "account" &&
475
+ eventCallback.filter.type === "transaction") {
476
+ events.push({
477
+ type: "transaction",
478
+ checkpoint: event.checkpoint,
479
+ chain,
480
+ eventCallback,
481
+ event: {
482
+ id: event.checkpoint,
483
+ block: event.block,
484
+ transaction: event.transaction,
485
+ transactionReceipt: event.transactionReceipt,
486
+ },
487
+ });
488
+ }
489
+ else if (eventCallback.type === "account" &&
490
+ eventCallback.filter.type === "transfer") {
491
+ events.push({
492
+ type: "transfer",
493
+ checkpoint: event.checkpoint,
494
+ chain,
495
+ eventCallback,
496
+ event: {
497
+ id: event.checkpoint,
498
+ transfer: {
499
+ from: event.trace.from,
500
+ to: event.trace.to,
501
+ value: event.trace.value,
502
+ },
503
+ block: event.block,
504
+ transaction: event.transaction,
505
+ transactionReceipt: event.transactionReceipt,
506
+ trace: event.trace,
507
+ },
508
+ });
509
+ }
510
+ else if (eventCallback.type === "block") {
511
+ events.push({
512
+ type: "block",
513
+ checkpoint: event.checkpoint,
514
+ chain,
515
+ eventCallback,
516
+ event: {
517
+ id: event.checkpoint,
518
+ block: event.block,
519
+ },
520
+ });
554
521
  }
555
522
  }
556
523
  if (logDecodeFailureCount > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/runtime/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/runtime/events.ts"],"names":[],"mappings":"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"}