@sentio/sdk 1.41.0-rc.1 → 2.0.0-rc.10

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 (301) hide show
  1. package/lib/builtin/eacaggregatorproxy/index.d.ts +3 -2
  2. package/lib/builtin/eacaggregatorproxy/index.js +3 -5
  3. package/lib/builtin/eacaggregatorproxy/index.js.map +1 -1
  4. package/lib/builtin/eacaggregatorproxy/test-utils.d.ts +1 -1
  5. package/lib/builtin/eacaggregatorproxy/test-utils.js +9 -16
  6. package/lib/builtin/eacaggregatorproxy/test-utils.js.map +1 -1
  7. package/lib/builtin/erc1155/index.d.ts +3 -2
  8. package/lib/builtin/erc1155/index.js +3 -5
  9. package/lib/builtin/erc1155/index.js.map +1 -1
  10. package/lib/builtin/erc1155/test-utils.d.ts +1 -1
  11. package/lib/builtin/erc1155/test-utils.js +9 -16
  12. package/lib/builtin/erc1155/test-utils.js.map +1 -1
  13. package/lib/builtin/erc20/index.d.ts +3 -2
  14. package/lib/builtin/erc20/index.js +3 -5
  15. package/lib/builtin/erc20/index.js.map +1 -1
  16. package/lib/builtin/erc20/test-utils.d.ts +1 -1
  17. package/lib/builtin/erc20/test-utils.js +7 -13
  18. package/lib/builtin/erc20/test-utils.js.map +1 -1
  19. package/lib/builtin/erc20bytes/index.d.ts +3 -2
  20. package/lib/builtin/erc20bytes/index.js +3 -5
  21. package/lib/builtin/erc20bytes/index.js.map +1 -1
  22. package/lib/builtin/erc20bytes/test-utils.d.ts +1 -1
  23. package/lib/builtin/erc20bytes/test-utils.js +5 -10
  24. package/lib/builtin/erc20bytes/test-utils.js.map +1 -1
  25. package/lib/builtin/erc721/index.d.ts +3 -2
  26. package/lib/builtin/erc721/index.js +3 -5
  27. package/lib/builtin/erc721/index.js.map +1 -1
  28. package/lib/builtin/erc721/test-utils.d.ts +1 -1
  29. package/lib/builtin/erc721/test-utils.js +7 -13
  30. package/lib/builtin/erc721/test-utils.js.map +1 -1
  31. package/lib/builtin/index.d.ts +8 -4
  32. package/lib/builtin/index.js +8 -8
  33. package/lib/builtin/index.js.map +1 -1
  34. package/lib/builtin/internal/EACAggregatorProxy.d.ts +6 -6
  35. package/lib/builtin/internal/EACAggregatorProxy.js +1 -2
  36. package/lib/builtin/internal/EACAggregatorProxy.js.map +1 -1
  37. package/lib/builtin/internal/ERC1155.d.ts +6 -6
  38. package/lib/builtin/internal/ERC1155.js +1 -2
  39. package/lib/builtin/internal/ERC1155.js.map +1 -1
  40. package/lib/builtin/internal/ERC20.d.ts +5 -5
  41. package/lib/builtin/internal/ERC20.js +1 -2
  42. package/lib/builtin/internal/ERC20.js.map +1 -1
  43. package/lib/builtin/internal/ERC20Bytes.d.ts +4 -4
  44. package/lib/builtin/internal/ERC20Bytes.js +1 -2
  45. package/lib/builtin/internal/ERC20Bytes.js.map +1 -1
  46. package/lib/builtin/internal/ERC721.d.ts +5 -5
  47. package/lib/builtin/internal/ERC721.js +1 -2
  48. package/lib/builtin/internal/ERC721.js.map +1 -1
  49. package/lib/builtin/internal/WETH9.d.ts +6 -6
  50. package/lib/builtin/internal/WETH9.js +1 -2
  51. package/lib/builtin/internal/WETH9.js.map +1 -1
  52. package/lib/builtin/internal/common.d.ts +4 -2
  53. package/lib/builtin/internal/common.js +1 -2
  54. package/lib/builtin/internal/common.js.map +1 -1
  55. package/lib/builtin/internal/eacaggregatorproxy_processor.d.ts +6 -6
  56. package/lib/builtin/internal/eacaggregatorproxy_processor.js +69 -77
  57. package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +1 -1
  58. package/lib/builtin/internal/erc1155_processor.d.ts +6 -6
  59. package/lib/builtin/internal/erc1155_processor.js +30 -38
  60. package/lib/builtin/internal/erc1155_processor.js.map +1 -1
  61. package/lib/builtin/internal/erc20_processor.d.ts +5 -5
  62. package/lib/builtin/internal/erc20_processor.js +39 -47
  63. package/lib/builtin/internal/erc20_processor.js.map +1 -1
  64. package/lib/builtin/internal/erc20bytes_processor.d.ts +4 -4
  65. package/lib/builtin/internal/erc20bytes_processor.js +33 -41
  66. package/lib/builtin/internal/erc20bytes_processor.js.map +1 -1
  67. package/lib/builtin/internal/erc721_processor.d.ts +5 -5
  68. package/lib/builtin/internal/erc721_processor.js +42 -50
  69. package/lib/builtin/internal/erc721_processor.js.map +1 -1
  70. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js +4 -8
  71. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -1
  72. package/lib/builtin/internal/factories/ERC1155__factory.js +4 -8
  73. package/lib/builtin/internal/factories/ERC1155__factory.js.map +1 -1
  74. package/lib/builtin/internal/factories/ERC20Bytes__factory.js +4 -8
  75. package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -1
  76. package/lib/builtin/internal/factories/ERC20__factory.js +4 -8
  77. package/lib/builtin/internal/factories/ERC20__factory.js.map +1 -1
  78. package/lib/builtin/internal/factories/ERC721__factory.js +4 -8
  79. package/lib/builtin/internal/factories/ERC721__factory.js.map +1 -1
  80. package/lib/builtin/internal/factories/WETH9__factory.js +4 -8
  81. package/lib/builtin/internal/factories/WETH9__factory.js.map +1 -1
  82. package/lib/builtin/internal/factories/index.d.ts +6 -6
  83. package/lib/builtin/internal/factories/index.js +6 -15
  84. package/lib/builtin/internal/factories/index.js.map +1 -1
  85. package/lib/builtin/internal/index.d.ts +13 -13
  86. package/lib/builtin/internal/index.js +7 -17
  87. package/lib/builtin/internal/index.js.map +1 -1
  88. package/lib/builtin/internal/weth9_processor.d.ts +6 -6
  89. package/lib/builtin/internal/weth9_processor.js +33 -41
  90. package/lib/builtin/internal/weth9_processor.js.map +1 -1
  91. package/lib/builtin/weth9/index.d.ts +3 -2
  92. package/lib/builtin/weth9/index.js +3 -5
  93. package/lib/builtin/weth9/index.js.map +1 -1
  94. package/lib/builtin/weth9/test-utils.d.ts +1 -1
  95. package/lib/builtin/weth9/test-utils.js +9 -16
  96. package/lib/builtin/weth9/test-utils.js.map +1 -1
  97. package/lib/core/base-context.d.ts +4 -4
  98. package/lib/core/base-context.js +7 -11
  99. package/lib/core/base-context.js.map +1 -1
  100. package/lib/core/big-decimal.js +3 -7
  101. package/lib/core/big-decimal.js.map +1 -1
  102. package/lib/core/bind-options.js +6 -13
  103. package/lib/core/bind-options.js.map +1 -1
  104. package/lib/core/context.d.ts +5 -5
  105. package/lib/core/context.js +14 -23
  106. package/lib/core/context.js.map +1 -1
  107. package/lib/core/core-plugin.js +9 -13
  108. package/lib/core/core-plugin.js.map +1 -1
  109. package/lib/core/event-tracker.d.ts +2 -2
  110. package/lib/core/event-tracker.js +6 -13
  111. package/lib/core/event-tracker.js.map +1 -1
  112. package/lib/core/exporter.d.ts +2 -2
  113. package/lib/core/exporter.js +4 -9
  114. package/lib/core/exporter.js.map +1 -1
  115. package/lib/core/index.d.ts +12 -9
  116. package/lib/core/index.js +12 -32
  117. package/lib/core/index.js.map +1 -1
  118. package/lib/core/logger.d.ts +2 -2
  119. package/lib/core/logger.js +7 -11
  120. package/lib/core/logger.js.map +1 -1
  121. package/lib/core/metadata.d.ts +4 -0
  122. package/lib/core/metadata.js +21 -7
  123. package/lib/core/metadata.js.map +1 -1
  124. package/lib/core/meter.d.ts +3 -7
  125. package/lib/core/meter.js +22 -57
  126. package/lib/core/meter.js.map +1 -1
  127. package/lib/core/meter.test.js.map +1 -1
  128. package/lib/core/numberish.d.ts +1 -1
  129. package/lib/core/numberish.js +12 -18
  130. package/lib/core/numberish.js.map +1 -1
  131. package/lib/core/numberish.test.js.map +1 -1
  132. package/lib/core/sui-plugin.js +12 -16
  133. package/lib/core/sui-plugin.js.map +1 -1
  134. package/lib/core/sui-processor.d.ts +1 -1
  135. package/lib/core/sui-processor.js +6 -12
  136. package/lib/core/sui-processor.js.map +1 -1
  137. package/lib/error.d.ts +1 -1
  138. package/lib/error.js +2 -7
  139. package/lib/error.js.map +1 -1
  140. package/lib/eth/account-processor-state.d.ts +1 -1
  141. package/lib/eth/account-processor-state.js +2 -6
  142. package/lib/eth/account-processor-state.js.map +1 -1
  143. package/lib/eth/account-processor.d.ts +7 -7
  144. package/lib/eth/account-processor.js +23 -27
  145. package/lib/eth/account-processor.js.map +1 -1
  146. package/lib/eth/base-processor-template.d.ts +9 -9
  147. package/lib/eth/base-processor-template.js +8 -17
  148. package/lib/eth/base-processor-template.js.map +1 -1
  149. package/lib/eth/base-processor.d.ts +8 -8
  150. package/lib/eth/base-processor.js +22 -31
  151. package/lib/eth/base-processor.js.map +1 -1
  152. package/lib/eth/binds.d.ts +3 -3
  153. package/lib/eth/binds.js +11 -19
  154. package/lib/eth/binds.js.map +1 -1
  155. package/lib/eth/eth-event.d.ts +5 -0
  156. package/lib/eth/eth-event.js +2 -0
  157. package/lib/eth/eth-event.js.map +1 -0
  158. package/lib/eth/eth-plugin.js +30 -34
  159. package/lib/eth/eth-plugin.js.map +1 -1
  160. package/lib/eth/generic-processor.d.ts +3 -3
  161. package/lib/eth/generic-processor.js +9 -13
  162. package/lib/eth/generic-processor.js.map +1 -1
  163. package/lib/{core → eth}/generic-processor.test.d.ts +0 -0
  164. package/lib/eth/generic-processor.test.js.map +1 -0
  165. package/lib/eth/index.d.ts +7 -6
  166. package/lib/eth/index.js +6 -14
  167. package/lib/eth/index.js.map +1 -1
  168. package/lib/eth/provider.js +12 -17
  169. package/lib/eth/provider.js.map +1 -1
  170. package/lib/eth/trace.js +1 -2
  171. package/lib/eth/trace.js.map +1 -1
  172. package/lib/index.d.ts +4 -5
  173. package/lib/index.js +5 -16
  174. package/lib/index.js.map +1 -1
  175. package/lib/promise-or-void.js +1 -2
  176. package/lib/target-ethers-sentio/{event-handler.js → event-handler.cjs} +4 -4
  177. package/lib/target-ethers-sentio/event-handler.cjs.map +1 -0
  178. package/lib/target-ethers-sentio/{event-handler.d.ts → event-handler.d.cts} +0 -0
  179. package/lib/target-ethers-sentio/{file.js → file.cjs} +19 -18
  180. package/lib/target-ethers-sentio/file.cjs.map +1 -0
  181. package/lib/target-ethers-sentio/{file.d.ts → file.d.cts} +0 -0
  182. package/lib/target-ethers-sentio/{functions-handler.js → functions-handler.cjs} +6 -7
  183. package/lib/target-ethers-sentio/functions-handler.cjs.map +1 -0
  184. package/lib/target-ethers-sentio/{functions-handler.d.ts → functions-handler.d.cts} +0 -0
  185. package/lib/target-ethers-sentio/{index.js → index.cjs} +8 -5
  186. package/lib/target-ethers-sentio/index.cjs.map +1 -0
  187. package/lib/target-ethers-sentio/{index.d.ts → index.d.cts} +0 -0
  188. package/lib/target-ethers-sentio/{types.js → types.cjs} +1 -1
  189. package/lib/target-ethers-sentio/types.cjs.map +1 -0
  190. package/lib/target-ethers-sentio/{types.d.ts → types.d.cts} +0 -0
  191. package/lib/target-ethers-sentio/{view-function.js → view-function.cjs} +5 -5
  192. package/lib/target-ethers-sentio/view-function.cjs.map +1 -0
  193. package/lib/target-ethers-sentio/{view-function.d.ts → view-function.d.cts} +0 -0
  194. package/lib/testing/index.d.ts +3 -2
  195. package/lib/testing/index.js +3 -10
  196. package/lib/testing/index.js.map +1 -1
  197. package/lib/testing/metric-utils.d.ts +1 -1
  198. package/lib/testing/metric-utils.js +7 -13
  199. package/lib/testing/metric-utils.js.map +1 -1
  200. package/lib/testing/test-processor-server.d.ts +3 -4
  201. package/lib/testing/test-processor-server.js +24 -29
  202. package/lib/testing/test-processor-server.js.map +1 -1
  203. package/lib/testing/test-provider.js +5 -9
  204. package/lib/testing/test-provider.js.map +1 -1
  205. package/lib/tsup.config.ts +28 -0
  206. package/lib/utils/chain.js +7 -12
  207. package/lib/utils/chain.js.map +1 -1
  208. package/lib/utils/conversion.d.ts +0 -5
  209. package/lib/utils/conversion.js +22 -27
  210. package/lib/utils/conversion.js.map +1 -1
  211. package/lib/utils/dex-price.js +14 -19
  212. package/lib/utils/dex-price.js.map +1 -1
  213. package/lib/utils/dex-price.test.js.map +1 -1
  214. package/lib/utils/erc20.test.js.map +1 -1
  215. package/lib/utils/index.d.ts +4 -4
  216. package/lib/utils/index.js +4 -8
  217. package/lib/utils/index.js.map +1 -1
  218. package/lib/utils/price.d.ts +11 -11
  219. package/lib/utils/price.js +10 -16
  220. package/lib/utils/price.js.map +1 -1
  221. package/lib/utils/token.d.ts +1 -1
  222. package/lib/utils/token.js +15 -21
  223. package/lib/utils/token.js.map +1 -1
  224. package/package.json +23 -19
  225. package/src/builtin/eacaggregatorproxy/index.ts +3 -2
  226. package/src/builtin/eacaggregatorproxy/test-utils.ts +1 -1
  227. package/src/builtin/erc1155/index.ts +3 -2
  228. package/src/builtin/erc1155/test-utils.ts +1 -1
  229. package/src/builtin/erc20/index.ts +3 -2
  230. package/src/builtin/erc20/test-utils.ts +1 -1
  231. package/src/builtin/erc20bytes/index.ts +3 -2
  232. package/src/builtin/erc20bytes/test-utils.ts +1 -1
  233. package/src/builtin/erc721/index.ts +3 -2
  234. package/src/builtin/erc721/test-utils.ts +1 -1
  235. package/src/builtin/index.ts +8 -4
  236. package/src/builtin/internal/EACAggregatorProxy.ts +6 -10
  237. package/src/builtin/internal/ERC1155.ts +6 -10
  238. package/src/builtin/internal/ERC20.ts +5 -8
  239. package/src/builtin/internal/ERC20Bytes.ts +4 -6
  240. package/src/builtin/internal/ERC721.ts +5 -8
  241. package/src/builtin/internal/WETH9.ts +6 -10
  242. package/src/builtin/internal/common.ts +5 -3
  243. package/src/builtin/internal/eacaggregatorproxy_processor.ts +2 -2
  244. package/src/builtin/internal/erc1155_processor.ts +2 -2
  245. package/src/builtin/internal/erc20_processor.ts +2 -2
  246. package/src/builtin/internal/erc20bytes_processor.ts +2 -2
  247. package/src/builtin/internal/erc721_processor.ts +2 -2
  248. package/src/builtin/internal/factories/index.ts +6 -6
  249. package/src/builtin/internal/index.ts +13 -13
  250. package/src/builtin/internal/weth9_processor.ts +2 -2
  251. package/src/builtin/weth9/index.ts +3 -2
  252. package/src/builtin/weth9/test-utils.ts +1 -1
  253. package/src/core/base-context.ts +4 -4
  254. package/src/core/context.ts +5 -6
  255. package/src/core/core-plugin.ts +3 -3
  256. package/src/core/event-tracker.ts +2 -2
  257. package/src/core/exporter.ts +3 -3
  258. package/src/core/index.ts +12 -9
  259. package/src/core/logger.ts +2 -2
  260. package/src/core/metadata.ts +23 -2
  261. package/src/core/meter.ts +3 -26
  262. package/src/core/numberish.ts +1 -1
  263. package/src/core/sui-plugin.ts +2 -2
  264. package/src/core/sui-processor.ts +1 -1
  265. package/src/error.ts +1 -1
  266. package/src/eth/account-processor-state.ts +1 -1
  267. package/src/eth/account-processor.ts +11 -11
  268. package/src/eth/base-processor-template.ts +8 -11
  269. package/src/eth/base-processor.ts +14 -28
  270. package/src/eth/binds.ts +3 -3
  271. package/src/eth/eth-event.ts +6 -0
  272. package/src/eth/eth-plugin.ts +3 -3
  273. package/src/eth/generic-processor.ts +5 -5
  274. package/src/eth/index.ts +8 -6
  275. package/src/index.ts +4 -6
  276. package/src/target-ethers-sentio/{event-handler.ts → event-handler.cts} +1 -1
  277. package/src/target-ethers-sentio/{file.ts → file.cts} +10 -9
  278. package/src/target-ethers-sentio/{functions-handler.ts → functions-handler.cts} +3 -4
  279. package/src/target-ethers-sentio/{index.ts → index.cts} +4 -1
  280. package/src/target-ethers-sentio/tsconfig.json +1 -1
  281. package/src/target-ethers-sentio/{types.ts → types.cts} +0 -0
  282. package/src/target-ethers-sentio/{view-function.ts → view-function.cts} +1 -1
  283. package/src/testing/index.ts +3 -3
  284. package/src/testing/metric-utils.ts +2 -2
  285. package/src/testing/test-processor-server.ts +5 -5
  286. package/src/testing/test-provider.ts +1 -1
  287. package/src/tsup.config.ts +28 -0
  288. package/src/utils/conversion.ts +21 -25
  289. package/src/utils/dex-price.ts +4 -5
  290. package/src/utils/index.ts +4 -4
  291. package/src/utils/price.ts +1 -1
  292. package/src/utils/token.ts +6 -6
  293. package/lib/core/generic-processor.test.js.map +0 -1
  294. package/lib/target-ethers-sentio/event-handler.js.map +0 -1
  295. package/lib/target-ethers-sentio/file.js.map +0 -1
  296. package/lib/target-ethers-sentio/functions-handler.js.map +0 -1
  297. package/lib/target-ethers-sentio/index.js.map +0 -1
  298. package/lib/target-ethers-sentio/types.js.map +0 -1
  299. package/lib/target-ethers-sentio/view-function.js.map +0 -1
  300. package/lib/webpack.config.js +0 -50
  301. package/src/webpack.config.js +0 -50
@@ -1,4 +1,4 @@
1
- import { SuiContext } from './context'
1
+ import { SuiContext } from './context.js'
2
2
  import { ProcessResult } from '@sentio/protos'
3
3
  import { ListStateStorage } from '@sentio/runtime'
4
4
 
package/src/error.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // Transform error in more readable format
2
- import { ContractContext } from './core/context'
2
+ import { ContractContext } from './core/context.js'
3
3
  // import { errors } from 'ethers/providers'
4
4
 
5
5
  export class EthersError extends Error {
@@ -1,5 +1,5 @@
1
1
  import { ListStateStorage } from '@sentio/runtime'
2
- import { AccountProcessor } from './account-processor'
2
+ import { AccountProcessor } from './account-processor.js'
3
3
 
4
4
  export class AccountProcessorState extends ListStateStorage<AccountProcessor> {
5
5
  static INSTANCE = new AccountProcessorState()
@@ -1,20 +1,20 @@
1
- import { ERC20__factory, ERC721__factory } from '../builtin/internal'
2
- import { AddressType, DummyProvider, EthFetchConfig, ProcessResult } from '@sentio/sdk'
3
- import { AccountBindOptions } from '../core/bind-options'
1
+ import { ERC20__factory, ERC721__factory } from '../builtin/internal/index.js'
2
+ import { AddressType, EthFetchConfig, ProcessResult } from '@sentio/protos'
3
+ import { AccountBindOptions } from '../core/bind-options.js'
4
4
 
5
5
  import { Network, LogParams } from 'ethers/providers'
6
6
 
7
- import { TransferEvent as ERC20TransferEvent } from '../builtin/internal/ERC20'
8
- import { TransferEvent as ERC721TransferEvent } from '../builtin/internal/ERC721'
7
+ import { TransferEvent as ERC20TransferEvent } from '../builtin/internal/ERC20.js'
8
+ import { TransferEvent as ERC721TransferEvent } from '../builtin/internal/ERC721.js'
9
9
 
10
- import { ERC20Processor } from '../builtin/internal/erc20_processor'
11
- import { ERC721Processor } from '../builtin/internal/erc721_processor'
10
+ import { ERC20Processor } from '../builtin/internal/erc20_processor.js'
11
+ import { ERC721Processor } from '../builtin/internal/erc721_processor.js'
12
12
 
13
- import { AccountContext } from '../core/context'
14
- import { PromiseOrVoid } from '../promise-or-void'
15
- import { AddressOrTypeEventFilter, EventsHandler } from './base-processor'
13
+ import { AccountContext } from '../core/context.js'
14
+ import { PromiseOrVoid } from '../promise-or-void.js'
15
+ import { AddressOrTypeEventFilter, EventsHandler } from './base-processor.js'
16
16
  import { Transaction, Block, TransactionReceipt, LogDescription } from 'ethers'
17
- import { AccountProcessorState } from './account-processor-state'
17
+ import { AccountProcessorState } from './account-processor-state.js'
18
18
 
19
19
  const ERC20_INTERFACE = ERC20__factory.createInterface()
20
20
  const ERC721_INTERFACE = ERC721__factory.createInterface()
@@ -1,13 +1,14 @@
1
- import { BoundContractView, ContractContext, ContractView } from '../core/context'
1
+ import { BoundContractView, ContractContext, ContractView } from '../core/context.js'
2
2
  import { BaseContract, ContractEvent, Block, LogDescription } from 'ethers'
3
- import { AddressOrTypeEventFilter, BaseProcessor } from './base-processor'
4
- import { BindOptions, getOptionsSignature } from '../core/bind-options'
3
+ import { AddressOrTypeEventFilter, BaseProcessor } from './base-processor.js'
4
+ import { BindOptions, getOptionsSignature } from '../core/bind-options.js'
5
5
  import { EthFetchConfig, HandleInterval, TemplateInstance } from '@sentio/protos'
6
- import { PromiseOrVoid } from '../promise-or-void'
7
- import { Trace } from './trace'
6
+ import { PromiseOrVoid } from '../promise-or-void.js'
7
+ import { Trace } from './trace.js'
8
8
  import { ListStateStorage } from '@sentio/runtime'
9
9
  import { EventFilter, LogParams, Network } from 'ethers/providers'
10
10
  import { DeferredTopicFilter } from 'ethers/contract'
11
+ import { EthEvent } from './eth-event.js'
11
12
 
12
13
  export class ProcessorTemplateProcessorState extends ListStateStorage<
13
14
  BaseProcessorTemplate<BaseContract, BoundContractView<BaseContract, any>>
@@ -36,7 +37,7 @@ export abstract class BaseProcessorTemplate<
36
37
  fetchConfig?: EthFetchConfig
37
38
  }[] = []
38
39
  eventHandlers: {
39
- handler: (event: LogDescription, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid
40
+ handler: (event: EthEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid
40
41
  filter: DeferredTopicFilter | DeferredTopicFilter[]
41
42
  fetchConfig?: EthFetchConfig
42
43
  }[] = []
@@ -87,7 +88,7 @@ export abstract class BaseProcessorTemplate<
87
88
  }
88
89
 
89
90
  public onEvent(
90
- handler: (event: LogDescription, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
91
+ handler: (event: EthEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
91
92
  filter: DeferredTopicFilter | DeferredTopicFilter[],
92
93
  fetchConfig?: EthFetchConfig
93
94
  ) {
@@ -99,10 +100,6 @@ export abstract class BaseProcessorTemplate<
99
100
  return this
100
101
  }
101
102
 
102
- public onBlock(handler: (block: Block, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid) {
103
- return this.onBlockInterval(handler)
104
- }
105
-
106
103
  public onBlockInterval(
107
104
  handler: (block: Block, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
108
105
  blockInterval = 1000,
@@ -1,18 +1,7 @@
1
- import {
2
- Block,
3
- ContractEvent,
4
- Log,
5
- TransactionReceipt,
6
- BytesLike,
7
- BaseContract,
8
- Transaction,
9
- DeferredTopicFilter,
10
- LogDescription,
11
- EventFragment,
12
- } from 'ethers'
13
- import { EventFilter, LogParams, Network } from 'ethers/providers'
1
+ import { Block, TransactionReceipt, BaseContract, Transaction, DeferredTopicFilter } from 'ethers'
2
+ import { LogParams, Network } from 'ethers/providers'
14
3
 
15
- import { BoundContractView, ContractContext, ContractView } from '../core/context'
4
+ import { BoundContractView, ContractContext, ContractView } from '../core/context.js'
16
5
  import {
17
6
  AddressType,
18
7
  Data_EthBlock,
@@ -22,10 +11,11 @@ import {
22
11
  HandleInterval,
23
12
  ProcessResult,
24
13
  } from '@sentio/protos'
25
- import { BindInternalOptions, BindOptions } from '../core/bind-options'
26
- import { PromiseOrVoid } from '../promise-or-void'
27
- import { Trace } from './trace'
14
+ import { BindInternalOptions, BindOptions } from '../core/bind-options.js'
15
+ import { PromiseOrVoid } from '../promise-or-void.js'
16
+ import { Trace } from './trace.js'
28
17
  import { ServerError, Status } from 'nice-grpc'
18
+ import { EthEvent } from './eth-event.js'
29
19
 
30
20
  export interface AddressOrTypeEventFilter extends DeferredTopicFilter {
31
21
  addressType?: AddressType
@@ -88,7 +78,7 @@ export abstract class BaseProcessor<
88
78
  }
89
79
 
90
80
  public onEvent(
91
- handler: (event: LogDescription, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
81
+ handler: (event: EthEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
92
82
  filter: DeferredTopicFilter | DeferredTopicFilter[],
93
83
  fetchConfig?: EthFetchConfig
94
84
  ) {
@@ -128,8 +118,10 @@ export abstract class BaseProcessor<
128
118
  const logParam = log as any as { topics: Array<string>; data: string }
129
119
 
130
120
  const parsed = contractView.rawContract.interface.parseLog(logParam)
121
+
131
122
  if (parsed) {
132
- await handler(parsed, ctx)
123
+ const event: EthEvent = { ...log, args: parsed.args }
124
+ await handler(event, ctx)
133
125
  return ctx.getProcessResult()
134
126
  }
135
127
  return ProcessResult.fromPartial({})
@@ -138,14 +130,10 @@ export abstract class BaseProcessor<
138
130
  return this
139
131
  }
140
132
 
141
- public onBlock(handler: (block: Block, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid) {
142
- return this.onBlockInterval(handler)
143
- }
144
-
145
133
  public onBlockInterval(
146
134
  handler: (block: Block, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid,
147
- blockInterval = 1000,
148
- backfillBlockInterval = 4000
135
+ blockInterval = 250,
136
+ backfillBlockInterval = 1000
149
137
  ) {
150
138
  return this.onInterval(handler, undefined, {
151
139
  recentInterval: blockInterval,
@@ -201,9 +189,7 @@ export abstract class BaseProcessor<
201
189
  return this
202
190
  }
203
191
 
204
- public onAllEvents(
205
- handler: (event: LogDescription, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid
206
- ) {
192
+ public onAllEvents(handler: (event: EthEvent, ctx: ContractContext<TContract, TBoundContractView>) => PromiseOrVoid) {
207
193
  const _filters: DeferredTopicFilter[] = []
208
194
  const tmpContract = this.CreateBoundContractView()
209
195
 
package/src/eth/binds.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { BindOptions, getOptionsSignature } from '../core/bind-options'
2
- import { ContractView } from '../core'
3
- import { BaseProcessor } from './base-processor'
1
+ import { BindOptions, getOptionsSignature } from '../core/bind-options.js'
2
+ import { ContractView } from '../core/index.js'
3
+ import { BaseProcessor } from './base-processor.js'
4
4
  import { Networkish, Network } from 'ethers/providers'
5
5
 
6
6
  import { BaseContract } from 'ethers'
@@ -0,0 +1,6 @@
1
+ import { LogParams } from 'ethers/providers'
2
+ import { Result } from 'ethers'
3
+
4
+ export interface EthEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends LogParams {
5
+ args: TArgsArray & TArgsObject & Result
6
+ }
@@ -15,9 +15,9 @@ import {
15
15
  } from '@sentio/protos'
16
16
 
17
17
  import { ServerError, Status } from 'nice-grpc'
18
- import { ProcessorState } from './binds'
19
- import { AccountProcessorState } from './account-processor-state'
20
- import { ProcessorTemplateProcessorState, TemplateInstanceState } from './base-processor-template'
18
+ import { ProcessorState } from './binds.js'
19
+ import { AccountProcessorState } from './account-processor-state.js'
20
+ import { ProcessorTemplateProcessorState, TemplateInstanceState } from './base-processor-template.js'
21
21
 
22
22
  export class EthPlugin extends Plugin {
23
23
  name: string = 'EthPlugin'
@@ -1,9 +1,9 @@
1
1
  import { BaseContract } from 'ethers'
2
- import { BoundContractView, ContractView } from '../core/context'
3
- import { BindOptions } from '../core/bind-options'
4
- import { BaseProcessor } from './base-processor'
5
- import { getProvider } from './provider'
6
- import { addProcessor } from './binds'
2
+ import { BoundContractView, ContractView } from '../core/context.js'
3
+ import { BindOptions } from '../core/bind-options.js'
4
+ import { BaseProcessor } from './base-processor.js'
5
+ import { getProvider } from './provider.js'
6
+ import { addProcessor } from './binds.js'
7
7
 
8
8
  export class GenericProcessor extends BaseProcessor<
9
9
  BaseContract,
package/src/eth/index.ts CHANGED
@@ -1,6 +1,8 @@
1
- export { BaseProcessor } from './base-processor'
2
- export { GenericProcessor } from './generic-processor'
3
- export { BaseProcessorTemplate } from './base-processor-template'
4
- export { getProvider, DummyProvider } from './provider'
5
- export type { TypedCallTrace, Trace } from './trace'
6
- export { EthPlugin } from './eth-plugin'
1
+ export { BaseProcessor } from './base-processor.js'
2
+ export { GenericProcessor } from './generic-processor.js'
3
+ export { BaseProcessorTemplate } from './base-processor-template.js'
4
+ export { getProvider, DummyProvider } from './provider.js'
5
+ export type { TypedCallTrace, Trace } from './trace.js'
6
+ export { EthPlugin } from './eth-plugin.js'
7
+
8
+ export { getProcessor, addProcessor, getContractByABI, addContractByABI } from './binds.js'
package/src/index.ts CHANGED
@@ -1,12 +1,10 @@
1
- export { transformEtherError, EthersError } from './error'
2
-
3
- export { getProcessor, addProcessor, getContractByABI, addContractByABI } from './eth/binds'
1
+ export { transformEtherError, EthersError } from './error.js'
4
2
 
5
3
  // TODO maybe remove this
6
4
  export * from '@sentio/protos'
7
5
 
8
- export * from './core'
9
- export * from './eth'
6
+ export * from './core/index.js'
7
+ export * from './eth/index.js'
10
8
 
11
- export * from './utils/chain'
9
+ export * from './utils/chain.js'
12
10
  // export * from './api'
@@ -1,5 +1,5 @@
1
1
  import { EventDeclaration, Contract, getFullSignatureAsSymbolForEvent } from 'typechain'
2
- import { getFullSignatureForEventPatched } from './types'
2
+ import { getFullSignatureForEventPatched } from './types.cjs'
3
3
  import { generateEventInputs } from '@sentio/ethers-v6/dist/codegen/events'
4
4
 
5
5
  export function generateEventHandler(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {
@@ -7,14 +7,15 @@ import {
7
7
 
8
8
  import { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords'
9
9
  import { getFullSignatureForEvent } from 'typechain/dist/utils/signatures'
10
- import { codegenCallTraceTypes, generateCallHandlers } from './functions-handler'
11
- import { generateEventFilters, generateEventHandlers } from './event-handler'
12
- import { generateBoundViewFunctions, generateViewFunctions } from './view-function'
10
+ import { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.cjs'
11
+ import { generateEventFilters, generateEventHandlers } from './event-handler.cjs'
12
+ import { generateBoundViewFunctions, generateViewFunctions } from './view-function.cjs'
13
13
 
14
14
  export function codeGenIndex(contract: Contract): string {
15
15
  return `
16
- export * from '../internal/${contract.name.toLowerCase()}_processor'
17
- export * from '../internal/${contract.name}'
16
+ export * from '../internal/${contract.name.toLowerCase()}_processor.js'
17
+ export * from '../internal/${contract.name}.js'
18
+ export * from './test-utils.js'
18
19
  `
19
20
  }
20
21
 
@@ -164,9 +165,9 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
164
165
  'toBlockTag',
165
166
  ],
166
167
  '@sentio/protos': ['EthFetchConfig'],
167
- './common': ['PromiseOrValue'],
168
- './index': [`${contract.name}`, `${contract.name}__factory`],
169
- [`./${contract.name}`]: eventsImports.concat(uniqueStructImports),
168
+ './common.js': ['PromiseOrValue'],
169
+ './index.js': [`${contract.name}`, `${contract.name}__factory`],
170
+ [`./${contract.name}.js`]: eventsImports.concat(uniqueStructImports),
170
171
  },
171
172
  source
172
173
  )
@@ -200,7 +201,7 @@ export function codeGenTestUtilsFile(contract: Contract): string {
200
201
  const imports = createImportsForUsedIdentifiers(
201
202
  {
202
203
  'ethers/providers': ['LogParams'],
203
- '.': [
204
+ './index.js': [
204
205
  `get${contract.name}Contract`,
205
206
  ...Object.values(contract.events).flatMap((events) => {
206
207
  if (events.length === 1) {
@@ -2,10 +2,9 @@ import {
2
2
  generateOutputComplexTypeAsArray,
3
3
  generateOutputComplexTypesAsObject,
4
4
  } from '@sentio/ethers-v6/dist/codegen/types'
5
- import { keccak256 } from 'ethers'
5
+ import { keccak_256 } from 'js-sha3'
6
6
  import { FunctionDeclaration, getSignatureForFn } from 'typechain'
7
- // import { utils } from 'ethers'
8
- import { getFullSignatureAsSymbolForFunction } from './types'
7
+ import { getFullSignatureAsSymbolForFunction } from './types.cjs'
9
8
 
10
9
  export function generateCallHandlers(fns: FunctionDeclaration[], contractName: string): string {
11
10
  if (fns.length === 1) {
@@ -42,7 +41,7 @@ function generateCallHandler(fn: FunctionDeclaration, contractName: string, over
42
41
  // utils.toUtf8Bytes(signature))
43
42
 
44
43
  const test = new TextEncoder().encode(signature)
45
- const sighash = keccak256(test).substring(0, 10)
44
+ const sighash = "0x" + keccak_256(test).substring(0, 8)
46
45
 
47
46
  return `
48
47
  onCall${capitalizeFirstChar(overloadedName ?? fn.name)}(
@@ -1,7 +1,7 @@
1
1
  import Ethers from '@sentio/ethers-v6'
2
2
  import { Config, extractAbi, extractDocumentation, FileDescription, parse, shortenFullJsonFilePath } from 'typechain'
3
3
  import { dirname, join, relative } from 'path'
4
- import { codeGenIndex, codeGenSentioFile, codeGenTestUtilsFile } from './file'
4
+ import { codeGenIndex, codeGenSentioFile, codeGenTestUtilsFile } from './file.cjs'
5
5
 
6
6
  export default class EthersSentio extends Ethers {
7
7
  constructor(config: Config) {
@@ -54,6 +54,9 @@ export default class EthersSentio extends Ethers {
54
54
  if (file.path.endsWith('__factory.ts')) {
55
55
  file.contents = '// @ts-nocheck\n' + file.contents
56
56
  }
57
+ if (file.path.endsWith('factories/index.ts')) {
58
+ file.contents = file.contents.replaceAll("__factory'", "__factory.js'")
59
+ }
57
60
  }
58
61
  return files
59
62
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "../../../../tsconfig.json",
2
+ "extends": "../../../../tsconfig.cjs.json",
3
3
  "compilerOptions": {
4
4
  "rootDir": "..",
5
5
  "outDir": "../../lib"
File without changes
@@ -1,7 +1,7 @@
1
1
  // https://github.com/dethcrypto/TypeChain/blob/015abb28bd22826611051f27e0ec96a00f9a0b61/packages/target-ethers-v5/src/codegen/functions.ts#L54
2
2
  import { FunctionDeclaration } from 'typechain'
3
3
  import { generateInputTypes, generateOutputTypes } from '@sentio/ethers-v6/dist/codegen/types'
4
- import { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types'
4
+ import { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types.cjs'
5
5
 
6
6
  function generateReturnTypes(fn: FunctionDeclaration) {
7
7
  // sounds like returnResultObject should be true but we need to set false to make it work
@@ -1,4 +1,4 @@
1
- export { TestProcessorServer } from './test-processor-server'
2
- export { MetricValueToNumber, firstCounterValue, firstGaugeValue } from './metric-utils'
1
+ export { TestProcessorServer } from './test-processor-server.js'
2
+ export { MetricValueToNumber, firstCounterValue, firstGaugeValue } from './metric-utils.js'
3
3
 
4
- // export { loadTestProvidersFromEnv } from './test-provider' // TODO make the interface more standard and then export
4
+ export { loadTestProvidersFromEnv } from './test-provider.js' // TODO make the interface more standard and then export
@@ -1,6 +1,6 @@
1
1
  import { MetricValue, ProcessResult } from '@sentio/protos'
2
- import { Numberish, BigDecimal } from '../core'
3
- import { bytesToBigInt } from '../utils/conversion'
2
+ import { Numberish, BigDecimal } from '../core/index.js'
3
+ import { bytesToBigInt } from '../utils/conversion.js'
4
4
 
5
5
  export function MetricValueToNumber(v: Partial<MetricValue> | undefined): Numberish | undefined {
6
6
  if (v === undefined) {
@@ -10,13 +10,13 @@ import {
10
10
  ProcessConfigResponse,
11
11
  ProcessorServiceImplementation,
12
12
  StartRequest,
13
+ Empty,
13
14
  } from '@sentio/protos'
14
15
  import { CallContext } from 'nice-grpc-common'
15
- import { Empty } from '@sentio/protos/lib/google/protobuf/empty'
16
- import { ChainConfig, ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime'
17
- import { CHAIN_MAP } from '../utils/chain'
16
+ import { ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime'
17
+ import { CHAIN_MAP } from '../utils/chain.js'
18
18
 
19
- import { Trace } from '../eth/trace'
19
+ import { Trace } from '../eth/trace.js'
20
20
  import { LogParams, Networkish, BlockParams, Network } from 'ethers/providers'
21
21
 
22
22
  import { Block, Log } from 'ethers'
@@ -33,7 +33,7 @@ export class TestProcessorServer implements ProcessorServiceImplementation {
33
33
  contractConfigs: ContractConfig[]
34
34
  accountConfigs: AccountConfig[]
35
35
 
36
- constructor(loader: () => void, httpEndpoints: Record<string, string> = {}) {
36
+ constructor(loader: () => Promise<any>, httpEndpoints: Record<string, string> = {}) {
37
37
  cleanTest()
38
38
 
39
39
  this.service = new ProcessorServiceImpl(loader)
@@ -1,5 +1,5 @@
1
1
  import { Endpoints } from '@sentio/runtime'
2
- import { CHAIN_MAP } from '../utils/chain'
2
+ import { CHAIN_MAP } from '../utils/chain.js'
3
3
 
4
4
  export function loadTestProvidersFromEnv(requiredChainIds: string[] | string): boolean {
5
5
  const found: string[] = []
@@ -0,0 +1,28 @@
1
+ import { defineConfig } from 'tsup'
2
+
3
+ export default defineConfig({
4
+ esbuildOptions: (options) => {
5
+ options.banner = {
6
+ js: `import { createRequire } from 'module'; const require = createRequire(import.meta.url);`,
7
+ }
8
+ },
9
+ entry: {
10
+ lib: 'src/processor.ts',
11
+ },
12
+ minify: true,
13
+ sourcemap: 'inline',
14
+ clean: true,
15
+ format: 'esm',
16
+ external: [
17
+ 'protobufjs',
18
+ 'aptos',
19
+ 'aptos-sdk',
20
+ 'ethers',
21
+ 'bs58',
22
+ 'bn.js',
23
+ 'csv-parse',
24
+ /^nice-grpc.*$/,
25
+ /^@(ethersproject|solana|project-serum).*$/,
26
+ /^@sentio\/(sdk|runtime|protos|bigdecimal|ethers).*$/,
27
+ ],
28
+ })
@@ -1,10 +1,6 @@
1
- import { BigDecimal } from '../core/big-decimal'
2
- import { Numberish } from '../core'
3
- import { MetricValue } from '@sentio/protos'
4
-
5
- export function toBigDecimal(n: bigint) {
6
- return new BigDecimal(n.toString())
7
- }
1
+ // import { BigDecimal } from '../core/big-decimal.js'
2
+ // import { Numberish } from '../core/index.js'
3
+ // import { MetricValue } from '@sentio/protos'
8
4
 
9
5
  export function bytesToBigInt(bytes: Uint8Array) {
10
6
  let intValue = BigInt(0)
@@ -14,21 +10,21 @@ export function bytesToBigInt(bytes: Uint8Array) {
14
10
  return intValue
15
11
  }
16
12
 
17
- export function metricValueToNumberish(v: MetricValue): Numberish {
18
- if (v.doubleValue) {
19
- return v.doubleValue
20
- }
21
- if (v.bigInteger) {
22
- let intValue = bytesToBigInt(v.bigInteger.data)
23
- if (v.bigInteger.negative) {
24
- intValue = -intValue
25
- }
26
- return intValue
27
- }
28
-
29
- if (v.bigDecimal) {
30
- return new BigDecimal(v.bigDecimal)
31
- }
32
-
33
- throw Error("MetricValue doesn't contain any of possible value")
34
- }
13
+ // export function metricValueToNumberish(v: MetricValue): Numberish {
14
+ // if (v.doubleValue) {
15
+ // return v.doubleValue
16
+ // }
17
+ // if (v.bigInteger) {
18
+ // let intValue = bytesToBigInt(v.bigInteger.data)
19
+ // if (v.bigInteger.negative) {
20
+ // intValue = -intValue
21
+ // }
22
+ // return intValue
23
+ // }
24
+ //
25
+ // if (v.bigDecimal) {
26
+ // return new BigDecimal(v.bigDecimal)
27
+ // }
28
+ //
29
+ // throw Error("MetricValue doesn't contain any of possible value")
30
+ // }
@@ -1,10 +1,9 @@
1
- import { getEACAggregatorProxyContract } from '../builtin/internal/eacaggregatorproxy_processor'
2
- import path from 'path'
1
+ import { getEACAggregatorProxyContract } from '../builtin/internal/eacaggregatorproxy_processor.js'
3
2
  import fs from 'fs'
4
- // @ts-ignore type def not provided
5
3
  import { parse } from 'csv-parse/sync'
6
4
  import { BlockTag } from 'ethers/providers'
7
- import { scaleDown } from './token'
5
+ import { scaleDown } from './token.js'
6
+ import url from 'url'
8
7
 
9
8
  type OralceRecord = {
10
9
  Pair: string
@@ -36,7 +35,7 @@ class DexPrice {
36
35
 
37
36
  constructor(csvFileName: string, chainId: number) {
38
37
  this.chainId = chainId
39
- const csvFilePath = path.resolve(__dirname, csvFileName)
38
+ const csvFilePath = url.fileURLToPath(new URL('./' + csvFileName, import.meta.url))
40
39
  const fileContent = fs.readFileSync(csvFilePath, { encoding: 'utf-8' })
41
40
  const headers = ['Pair', 'Asset', 'Type', 'Address']
42
41
 
@@ -1,4 +1,4 @@
1
- export * as chain from './chain'
2
- export * as conversion from './conversion'
3
- export * as token from './token'
4
- export * as dexPrice from './dex-price'
1
+ export * from './chain.js'
2
+ export * from './conversion.js'
3
+ export * from './token.js'
4
+ export * from './dex-price.js'
@@ -1,4 +1,4 @@
1
- import { CoinID, PriceServiceClient, PriceServiceDefinition } from '@sentio/protos/lib/service/price/protos/price'
1
+ import { CoinID, PriceServiceClient, PriceServiceDefinition } from '@sentio/protos/price'
2
2
  import { createChannel, createClientFactory } from 'nice-grpc'
3
3
  import { retryMiddleware, RetryOptions } from 'nice-grpc-client-middleware-retry'
4
4
  import { Endpoints } from '@sentio/runtime'
@@ -1,10 +1,10 @@
1
- import { transformEtherError } from '../error'
2
- import { getERC20Contract } from '../builtin/erc20'
3
- import { getERC20BytesContract } from '../builtin/internal/erc20bytes_processor'
4
- import { BigDecimal } from '../core/big-decimal'
5
- import { toBigDecimal } from './conversion'
1
+ import { transformEtherError } from '../error.js'
2
+ import { getERC20Contract } from '../builtin/erc20/index.js'
3
+ import { getERC20BytesContract } from '../builtin/internal/erc20bytes_processor.js'
4
+ import { BigDecimal } from '../core/big-decimal.js'
5
+ // import { toBigDecimal } from './conversion'
6
6
  // import { utils } from 'ethers'
7
- import { PromiseOrValue } from '../builtin/internal/common'
7
+ import { PromiseOrValue } from '../builtin/internal/common.js'
8
8
  import { decodeBytes32String } from 'ethers'
9
9
 
10
10
  export interface TokenInfo {
@@ -1 +0,0 @@
1
- {"version":3,"file":"generic-processor.test.js","sourceRoot":"","sources":["../../src/core/generic-processor.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType } from '@sentio/protos'\n\nimport { GenericProcessor } from '../eth/generic-processor'\nimport { TestProcessorServer, firstCounterValue } from '../testing'\n\ndescribe('Test Generic Processor', () => {\n const service = new TestProcessorServer(() => {\n GenericProcessor.bind(\n [\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\n 'event Approval(address indexed from, address indexed to, uint256 value)',\n ],\n { address: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9' }\n ).onAllEvents(function (log, ctx) {\n ctx.meter.Counter('event_num').add(1)\n })\n\n GenericProcessor.bind('event WalletCreated(address wallet, address owner)', {\n address: '0x57E037F4d2c8BEa011Ad8a9A5AF4AaEEd508650f',\n }).onAllEvents(function (log, ctx) {\n ctx.meter.Counter('wallet').add(1)\n })\n })\n\n beforeAll(async () => {\n await service.start()\n })\n\n test('check configuration', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(2)\n expect(config.contractConfigs?.[0].contract?.name).equals('Generic')\n })\n\n test('Check log dispatch', async () => {\n const res = await service.testLogs([logData, logData])\n const counters = res.result?.counters\n expect(counters).length(2)\n expect(firstCounterValue(res.result, 'event_num')).equals(1)\n expect(counters?.[0].runtimeInfo?.from).equals(HandlerType.ETH_LOG)\n })\n\n test('Check log dispatch no buffer over rune', async () => {\n const logStr =\n '{\"address\":\"0x57e037f4d2c8bea011ad8a9a5af4aaeed508650f\",\"topics\":[\"0x5b03bfed1c14a02bdeceb5fa582eb1a5765fc0bc64ca0e6af4c20afc9487f081\"],\"data\":\"0x00000000000000000000000093269483a70c68d5c5bb63aac1e8f4ac59f498800000000000000000000000000c520e51c055cf63bab075715c1b860b2e9b8e24\",\"blockNumber\":\"0xc9d6d7\",\"transactionHash\":\"0x208af3250499672c2f07138b9aa236153c65c78ae4341b23c2763017afdd61a2\",\"transactionIndex\":\"0xf3\",\"blockHash\":\"0x6e3b100c34b510049e922fbe1c1dab1b0793be3d1229b632688e6a518cdd11b6\",\"logIndex\":\"0x14b\",\"removed\":false}'\n const res = await service.testLog(JSON.parse(logStr))\n console.log(JSON.stringify(res))\n })\n\n const logData = {\n index: 0,\n blockNumber: 14213252,\n blockHash: '0x83d646fac9350b281def8c4c37626f9d8efc95df801287b848c719edf35cdbaf',\n transactionIndex: 347,\n removed: false,\n address: '0x1E4EDE388cbc9F4b5c79681B7f94d36a11ABEBC9',\n data: '0x00000000000000000000000000000000000000000000009a71db64810aaa0000',\n topics: [\n '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n '0x000000000000000000000000b329e39ebefd16f40d38f07643652ce17ca5bac1',\n ],\n transactionHash: '0x93355e0cb2c3490cb8a747029ff2dc8cdbde2407025b8391398436955afae303',\n logIndex: 428,\n }\n})\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../src/target-ethers-sentio/event-handler.ts"],"names":[],"mappings":";;;AAAA,yCAAwF;AACxF,mCAAyD;AACzD,kEAA2E;AAE3E,SAAgB,oBAAoB,CAAC,KAAuB,EAAE,YAAoB,EAAE,eAAwB;IAC1G,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,4CAAgC,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IACxF,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAErE,MAAM,UAAU,GAAG,IAAA,uCAA+B,EAAC,KAAK,CAAC,CAAA;IACzD,OAAO;WACE,SAAS;uBACG,eAAe,eAAe,YAAY;eAClD,eAAe,iBAAiB,eAAe;;;;2CAInB,UAAU,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;;GAIhG,CAAA;AACH,CAAC;AAjBD,oDAiBC;AAED,SAAgB,qBAAqB,CAAC,MAA0B,EAAE,YAAoB;IACpF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;KAC5D;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjF;AACH,CAAC;AAND,sDAMC;AAED,SAAS,mBAAmB,CAAC,KAAuB,EAAE,eAAwB;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,4CAAgC,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IAExF,MAAM,UAAU,GAAG,IAAA,uCAA+B,EAAC,KAAK,CAAC,CAAA;IACzD,OAAO;MACH,SAAS,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,UAAU,MAAM,KAAK,CAAC,MAAM;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC;GACX,CAAA;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAA0B;IAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;KAC/C;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;KACvD;AACH,CAAC;AAND,oDAMC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/target-ethers-sentio/file.ts"],"names":[],"mappings":"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"}