@sentio/sdk 1.13.1 → 1.14.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 (361) hide show
  1. package/lib/cli/commands/run-create.js +2 -0
  2. package/lib/cli/commands/run-create.js.map +1 -1
  3. package/lib/gen/processor/protos/processor.d.ts +0 -1
  4. package/lib/gen/processor/protos/processor.js +0 -10
  5. package/lib/gen/processor/protos/processor.js.map +1 -1
  6. package/lib/meter.js +0 -5
  7. package/lib/meter.js.map +1 -1
  8. package/lib/test/metric-utils.js +2 -2
  9. package/lib/test/metric-utils.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/cli/commands/run-create.ts +3 -0
  12. package/src/gen/processor/protos/processor.ts +0 -11
  13. package/src/meter.ts +0 -5
  14. package/src/test/metric-utils.ts +2 -2
  15. package/template/package.json +2 -3
  16. package/template/src/processor.test.ts +1 -1
  17. package/template/src/processor.ts +20 -16
  18. package/template/node_modules/@sentio/sdk/lib/base-processor-template.d.ts +0 -27
  19. package/template/node_modules/@sentio/sdk/lib/base-processor-template.js +0 -80
  20. package/template/node_modules/@sentio/sdk/lib/base-processor-template.js.map +0 -1
  21. package/template/node_modules/@sentio/sdk/lib/base-processor.d.ts +0 -30
  22. package/template/node_modules/@sentio/sdk/lib/base-processor.js +0 -148
  23. package/template/node_modules/@sentio/sdk/lib/base-processor.js.map +0 -1
  24. package/template/node_modules/@sentio/sdk/lib/bind-options.d.ts +0 -21
  25. package/template/node_modules/@sentio/sdk/lib/bind-options.js +0 -42
  26. package/template/node_modules/@sentio/sdk/lib/bind-options.js.map +0 -1
  27. package/template/node_modules/@sentio/sdk/lib/binds.d.ts +0 -10
  28. package/template/node_modules/@sentio/sdk/lib/binds.js +0 -59
  29. package/template/node_modules/@sentio/sdk/lib/binds.js.map +0 -1
  30. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/index.d.ts +0 -2
  31. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/index.js +0 -22
  32. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/index.js.map +0 -1
  33. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/test-utils.d.ts +0 -5
  34. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/test-utils.js +0 -46
  35. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/test-utils.js.map +0 -1
  36. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/index.d.ts +0 -2
  37. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/index.js +0 -22
  38. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/index.js.map +0 -1
  39. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/test-utils.d.ts +0 -4
  40. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/test-utils.js +0 -35
  41. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/test-utils.js.map +0 -1
  42. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20.d.ts +0 -307
  43. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20.js +0 -3
  44. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20.js.map +0 -1
  45. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20Bytes.d.ts +0 -166
  46. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20Bytes.js +0 -3
  47. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20Bytes.js.map +0 -1
  48. package/template/node_modules/@sentio/sdk/lib/builtin/internal/WETH9.d.ts +0 -221
  49. package/template/node_modules/@sentio/sdk/lib/builtin/internal/WETH9.js +0 -3
  50. package/template/node_modules/@sentio/sdk/lib/builtin/internal/WETH9.js.map +0 -1
  51. package/template/node_modules/@sentio/sdk/lib/builtin/internal/common.d.ts +0 -22
  52. package/template/node_modules/@sentio/sdk/lib/builtin/internal/common.js +0 -3
  53. package/template/node_modules/@sentio/sdk/lib/builtin/internal/common.js.map +0 -1
  54. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20_processor.d.ts +0 -184
  55. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20_processor.js +0 -453
  56. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20_processor.js.map +0 -1
  57. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20bytes_processor.d.ts +0 -110
  58. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20bytes_processor.js +0 -325
  59. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20bytes_processor.js.map +0 -1
  60. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20Bytes__factory.d.ts +0 -48
  61. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20Bytes__factory.js +0 -254
  62. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +0 -1
  63. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20__factory.d.ts +0 -42
  64. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20__factory.js +0 -404
  65. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20__factory.js.map +0 -1
  66. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/WETH9__factory.d.ts +0 -45
  67. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/WETH9__factory.js +0 -297
  68. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/WETH9__factory.js.map +0 -1
  69. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/index.d.ts +0 -3
  70. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/index.js +0 -13
  71. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/index.js.map +0 -1
  72. package/template/node_modules/@sentio/sdk/lib/builtin/internal/index.d.ts +0 -7
  73. package/template/node_modules/@sentio/sdk/lib/builtin/internal/index.js +0 -34
  74. package/template/node_modules/@sentio/sdk/lib/builtin/internal/index.js.map +0 -1
  75. package/template/node_modules/@sentio/sdk/lib/builtin/internal/weth9_processor.d.ts +0 -126
  76. package/template/node_modules/@sentio/sdk/lib/builtin/internal/weth9_processor.js +0 -361
  77. package/template/node_modules/@sentio/sdk/lib/builtin/internal/weth9_processor.js.map +0 -1
  78. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/index.d.ts +0 -2
  79. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/index.js +0 -22
  80. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/index.js.map +0 -1
  81. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/test-utils.d.ts +0 -6
  82. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/test-utils.js +0 -57
  83. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/test-utils.js.map +0 -1
  84. package/template/node_modules/@sentio/sdk/lib/chain-config.d.ts +0 -6
  85. package/template/node_modules/@sentio/sdk/lib/chain-config.js +0 -3
  86. package/template/node_modules/@sentio/sdk/lib/chain-config.js.map +0 -1
  87. package/template/node_modules/@sentio/sdk/lib/cli/build.d.ts +0 -4
  88. package/template/node_modules/@sentio/sdk/lib/cli/build.js +0 -178
  89. package/template/node_modules/@sentio/sdk/lib/cli/build.js.map +0 -1
  90. package/template/node_modules/@sentio/sdk/lib/cli/cli.d.ts +0 -2
  91. package/template/node_modules/@sentio/sdk/lib/cli/cli.js +0 -163
  92. package/template/node_modules/@sentio/sdk/lib/cli/cli.js.map +0 -1
  93. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-create.d.ts +0 -1
  94. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-create.js +0 -43
  95. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-create.js.map +0 -1
  96. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-login.d.ts +0 -1
  97. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-login.js +0 -77
  98. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-login.js.map +0 -1
  99. package/template/node_modules/@sentio/sdk/lib/cli/config.d.ts +0 -16
  100. package/template/node_modules/@sentio/sdk/lib/cli/config.js +0 -36
  101. package/template/node_modules/@sentio/sdk/lib/cli/config.js.map +0 -1
  102. package/template/node_modules/@sentio/sdk/lib/cli/key.d.ts +0 -2
  103. package/template/node_modules/@sentio/sdk/lib/cli/key.js +0 -44
  104. package/template/node_modules/@sentio/sdk/lib/cli/key.js.map +0 -1
  105. package/template/node_modules/@sentio/sdk/lib/cli/solana-code-gen.d.ts +0 -2
  106. package/template/node_modules/@sentio/sdk/lib/cli/solana-code-gen.js +0 -19
  107. package/template/node_modules/@sentio/sdk/lib/cli/solana-code-gen.js.map +0 -1
  108. package/template/node_modules/@sentio/sdk/lib/cli/upload.d.ts +0 -2
  109. package/template/node_modules/@sentio/sdk/lib/cli/upload.js +0 -85
  110. package/template/node_modules/@sentio/sdk/lib/cli/upload.js.map +0 -1
  111. package/template/node_modules/@sentio/sdk/lib/cli/webpack.config.js +0 -42
  112. package/template/node_modules/@sentio/sdk/lib/context.d.ts +0 -49
  113. package/template/node_modules/@sentio/sdk/lib/context.js +0 -93
  114. package/template/node_modules/@sentio/sdk/lib/context.js.map +0 -1
  115. package/template/node_modules/@sentio/sdk/lib/contract-namer.d.ts +0 -6
  116. package/template/node_modules/@sentio/sdk/lib/contract-namer.js +0 -20
  117. package/template/node_modules/@sentio/sdk/lib/contract-namer.js.map +0 -1
  118. package/template/node_modules/@sentio/sdk/lib/error.d.ts +0 -7
  119. package/template/node_modules/@sentio/sdk/lib/error.js +0 -43
  120. package/template/node_modules/@sentio/sdk/lib/error.js.map +0 -1
  121. package/template/node_modules/@sentio/sdk/lib/gen/builtin.d.ts +0 -6
  122. package/template/node_modules/@sentio/sdk/lib/gen/builtin.js +0 -3
  123. package/template/node_modules/@sentio/sdk/lib/gen/builtin.js.map +0 -1
  124. package/template/node_modules/@sentio/sdk/lib/gen/google/protobuf/empty.d.ts +0 -16
  125. package/template/node_modules/@sentio/sdk/lib/gen/google/protobuf/empty.js +0 -47
  126. package/template/node_modules/@sentio/sdk/lib/gen/google/protobuf/empty.js.map +0 -1
  127. package/template/node_modules/@sentio/sdk/lib/gen/processor/protos/processor.d.ts +0 -666
  128. package/template/node_modules/@sentio/sdk/lib/gen/processor/protos/processor.js +0 -2837
  129. package/template/node_modules/@sentio/sdk/lib/gen/processor/protos/processor.js.map +0 -1
  130. package/template/node_modules/@sentio/sdk/lib/generic-processor.d.ts +0 -10
  131. package/template/node_modules/@sentio/sdk/lib/generic-processor.js +0 -32
  132. package/template/node_modules/@sentio/sdk/lib/generic-processor.js.map +0 -1
  133. package/template/node_modules/@sentio/sdk/lib/index.d.ts +0 -18
  134. package/template/node_modules/@sentio/sdk/lib/index.js +0 -63
  135. package/template/node_modules/@sentio/sdk/lib/index.js.map +0 -1
  136. package/template/node_modules/@sentio/sdk/lib/loader.d.ts +0 -5
  137. package/template/node_modules/@sentio/sdk/lib/loader.js +0 -30
  138. package/template/node_modules/@sentio/sdk/lib/loader.js.map +0 -1
  139. package/template/node_modules/@sentio/sdk/lib/meter.d.ts +0 -26
  140. package/template/node_modules/@sentio/sdk/lib/meter.js +0 -131
  141. package/template/node_modules/@sentio/sdk/lib/meter.js.map +0 -1
  142. package/template/node_modules/@sentio/sdk/lib/meter.test.d.ts +0 -1
  143. package/template/node_modules/@sentio/sdk/lib/meter.test.js +0 -16
  144. package/template/node_modules/@sentio/sdk/lib/meter.test.js.map +0 -1
  145. package/template/node_modules/@sentio/sdk/lib/numberish.d.ts +0 -6
  146. package/template/node_modules/@sentio/sdk/lib/numberish.js +0 -96
  147. package/template/node_modules/@sentio/sdk/lib/numberish.js.map +0 -1
  148. package/template/node_modules/@sentio/sdk/lib/numberish.test.d.ts +0 -1
  149. package/template/node_modules/@sentio/sdk/lib/numberish.test.js +0 -70
  150. package/template/node_modules/@sentio/sdk/lib/numberish.test.js.map +0 -1
  151. package/template/node_modules/@sentio/sdk/lib/processor-runner.d.ts +0 -2
  152. package/template/node_modules/@sentio/sdk/lib/processor-runner.js +0 -40
  153. package/template/node_modules/@sentio/sdk/lib/processor-runner.js.map +0 -1
  154. package/template/node_modules/@sentio/sdk/lib/processor-state.d.ts +0 -16
  155. package/template/node_modules/@sentio/sdk/lib/processor-state.js +0 -20
  156. package/template/node_modules/@sentio/sdk/lib/processor-state.js.map +0 -1
  157. package/template/node_modules/@sentio/sdk/lib/promise-or-void.d.ts +0 -1
  158. package/template/node_modules/@sentio/sdk/lib/promise-or-void.js +0 -3
  159. package/template/node_modules/@sentio/sdk/lib/promise-or-void.js.map +0 -1
  160. package/template/node_modules/@sentio/sdk/lib/provider.d.ts +0 -6
  161. package/template/node_modules/@sentio/sdk/lib/provider.js +0 -66
  162. package/template/node_modules/@sentio/sdk/lib/provider.js.map +0 -1
  163. package/template/node_modules/@sentio/sdk/lib/release.config.js +0 -31
  164. package/template/node_modules/@sentio/sdk/lib/service.d.ts +0 -25
  165. package/template/node_modules/@sentio/sdk/lib/service.js +0 -406
  166. package/template/node_modules/@sentio/sdk/lib/service.js.map +0 -1
  167. package/template/node_modules/@sentio/sdk/lib/solana/builtin/index.d.ts +0 -2
  168. package/template/node_modules/@sentio/sdk/lib/solana/builtin/index.js +0 -19
  169. package/template/node_modules/@sentio/sdk/lib/solana/builtin/index.js.map +0 -1
  170. package/template/node_modules/@sentio/sdk/lib/solana/builtin/spl-token-processor.d.ts +0 -26
  171. package/template/node_modules/@sentio/sdk/lib/solana/builtin/spl-token-processor.js +0 -138
  172. package/template/node_modules/@sentio/sdk/lib/solana/builtin/spl-token-processor.js.map +0 -1
  173. package/template/node_modules/@sentio/sdk/lib/solana/builtin/types.d.ts +0 -330
  174. package/template/node_modules/@sentio/sdk/lib/solana/builtin/types.js +0 -203
  175. package/template/node_modules/@sentio/sdk/lib/solana/builtin/types.js.map +0 -1
  176. package/template/node_modules/@sentio/sdk/lib/solana/builtin/wormhole-processor.d.ts +0 -18
  177. package/template/node_modules/@sentio/sdk/lib/solana/builtin/wormhole-processor.js +0 -192
  178. package/template/node_modules/@sentio/sdk/lib/solana/builtin/wormhole-processor.js.map +0 -1
  179. package/template/node_modules/@sentio/sdk/lib/solana-processor.d.ts +0 -34
  180. package/template/node_modules/@sentio/sdk/lib/solana-processor.js +0 -95
  181. package/template/node_modules/@sentio/sdk/lib/solana-processor.js.map +0 -1
  182. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/codegen.d.ts +0 -4
  183. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/codegen.js +0 -292
  184. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/codegen.js.map +0 -1
  185. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/functions.d.ts +0 -3
  186. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/functions.js +0 -61
  187. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/functions.js.map +0 -1
  188. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/index.d.ts +0 -6
  189. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/index.js +0 -51
  190. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/index.js.map +0 -1
  191. package/template/node_modules/@sentio/sdk/lib/test/codegen.test.d.ts +0 -1
  192. package/template/node_modules/@sentio/sdk/lib/test/codegen.test.js +0 -49
  193. package/template/node_modules/@sentio/sdk/lib/test/codegen.test.js.map +0 -1
  194. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.d.ts +0 -1
  195. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.js +0 -23
  196. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.js.map +0 -1
  197. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.test.d.ts +0 -1
  198. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.test.js +0 -37
  199. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.test.js.map +0 -1
  200. package/template/node_modules/@sentio/sdk/lib/test/erc20.d.ts +0 -1
  201. package/template/node_modules/@sentio/sdk/lib/test/erc20.js +0 -44
  202. package/template/node_modules/@sentio/sdk/lib/test/erc20.js.map +0 -1
  203. package/template/node_modules/@sentio/sdk/lib/test/erc20.test.d.ts +0 -1
  204. package/template/node_modules/@sentio/sdk/lib/test/erc20.test.js +0 -96
  205. package/template/node_modules/@sentio/sdk/lib/test/erc20.test.js.map +0 -1
  206. package/template/node_modules/@sentio/sdk/lib/test/generic-processor.test.d.ts +0 -1
  207. package/template/node_modules/@sentio/sdk/lib/test/generic-processor.test.js +0 -59
  208. package/template/node_modules/@sentio/sdk/lib/test/generic-processor.test.js.map +0 -1
  209. package/template/node_modules/@sentio/sdk/lib/test/index.d.ts +0 -2
  210. package/template/node_modules/@sentio/sdk/lib/test/index.js +0 -8
  211. package/template/node_modules/@sentio/sdk/lib/test/index.js.map +0 -1
  212. package/template/node_modules/@sentio/sdk/lib/test/metric-utils.d.ts +0 -6
  213. package/template/node_modules/@sentio/sdk/lib/test/metric-utils.js +0 -50
  214. package/template/node_modules/@sentio/sdk/lib/test/metric-utils.js.map +0 -1
  215. package/template/node_modules/@sentio/sdk/lib/test/mirrorworld.d.ts +0 -1
  216. package/template/node_modules/@sentio/sdk/lib/test/mirrorworld.js +0 -42
  217. package/template/node_modules/@sentio/sdk/lib/test/mirrorworld.js.map +0 -1
  218. package/template/node_modules/@sentio/sdk/lib/test/solana.test.d.ts +0 -1
  219. package/template/node_modules/@sentio/sdk/lib/test/solana.test.js +0 -90
  220. package/template/node_modules/@sentio/sdk/lib/test/solana.test.js.map +0 -1
  221. package/template/node_modules/@sentio/sdk/lib/test/test-processor-server.d.ts +0 -34
  222. package/template/node_modules/@sentio/sdk/lib/test/test-processor-server.js +0 -205
  223. package/template/node_modules/@sentio/sdk/lib/test/test-processor-server.js.map +0 -1
  224. package/template/node_modules/@sentio/sdk/lib/test/test-provider.d.ts +0 -1
  225. package/template/node_modules/@sentio/sdk/lib/test/test-provider.js +0 -25
  226. package/template/node_modules/@sentio/sdk/lib/test/test-provider.js.map +0 -1
  227. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet.d.ts +0 -45
  228. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet.js +0 -1396
  229. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet.js.map +0 -1
  230. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet_processor.d.ts +0 -107
  231. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet_processor.js +0 -105
  232. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet_processor.js.map +0 -1
  233. package/template/node_modules/@sentio/sdk/lib/test/wormhole-token-bridge.d.ts +0 -1
  234. package/template/node_modules/@sentio/sdk/lib/test/wormhole-token-bridge.js +0 -22
  235. package/template/node_modules/@sentio/sdk/lib/test/wormhole-token-bridge.js.map +0 -1
  236. package/template/node_modules/@sentio/sdk/lib/trace.d.ts +0 -35
  237. package/template/node_modules/@sentio/sdk/lib/trace.js +0 -43
  238. package/template/node_modules/@sentio/sdk/lib/trace.js.map +0 -1
  239. package/template/node_modules/@sentio/sdk/lib/utils/chainmap.d.ts +0 -2
  240. package/template/node_modules/@sentio/sdk/lib/utils/chainmap.js +0 -98
  241. package/template/node_modules/@sentio/sdk/lib/utils/chainmap.js.map +0 -1
  242. package/template/node_modules/@sentio/sdk/lib/utils/convert.d.ts +0 -5
  243. package/template/node_modules/@sentio/sdk/lib/utils/convert.js +0 -27
  244. package/template/node_modules/@sentio/sdk/lib/utils/convert.js.map +0 -1
  245. package/template/node_modules/@sentio/sdk/lib/utils/erc20.d.ts +0 -14
  246. package/template/node_modules/@sentio/sdk/lib/utils/erc20.js +0 -62
  247. package/template/node_modules/@sentio/sdk/lib/utils/erc20.js.map +0 -1
  248. package/template/node_modules/@sentio/sdk/lib/utils/erc20.test.d.ts +0 -1
  249. package/template/node_modules/@sentio/sdk/lib/utils/erc20.test.js +0 -23
  250. package/template/node_modules/@sentio/sdk/lib/utils/erc20.test.js.map +0 -1
  251. package/template/node_modules/@sentio/sdk/lib/utils/index.d.ts +0 -3
  252. package/template/node_modules/@sentio/sdk/lib/utils/index.js +0 -14
  253. package/template/node_modules/@sentio/sdk/lib/utils/index.js.map +0 -1
  254. package/template/node_modules/@sentio/sdk/package.json +0 -78
  255. package/template/node_modules/@sentio/sdk/src/abis/ERC20.json +0 -174
  256. package/template/node_modules/@sentio/sdk/src/abis/ERC20Bytes.json +0 -236
  257. package/template/node_modules/@sentio/sdk/src/abis/WETH9.json +0 -153
  258. package/template/node_modules/@sentio/sdk/src/base-processor-template.ts +0 -105
  259. package/template/node_modules/@sentio/sdk/src/base-processor.ts +0 -172
  260. package/template/node_modules/@sentio/sdk/src/bind-options.ts +0 -41
  261. package/template/node_modules/@sentio/sdk/src/binds.ts +0 -73
  262. package/template/node_modules/@sentio/sdk/src/builtin/erc20/index.ts +0 -6
  263. package/template/node_modules/@sentio/sdk/src/builtin/erc20/test-utils.ts +0 -71
  264. package/template/node_modules/@sentio/sdk/src/builtin/erc20bytes/index.ts +0 -6
  265. package/template/node_modules/@sentio/sdk/src/builtin/erc20bytes/test-utils.ts +0 -53
  266. package/template/node_modules/@sentio/sdk/src/builtin/internal/ERC20.ts +0 -679
  267. package/template/node_modules/@sentio/sdk/src/builtin/internal/ERC20Bytes.ts +0 -384
  268. package/template/node_modules/@sentio/sdk/src/builtin/internal/WETH9.ts +0 -480
  269. package/template/node_modules/@sentio/sdk/src/builtin/internal/common.ts +0 -46
  270. package/template/node_modules/@sentio/sdk/src/builtin/internal/erc20_processor.ts +0 -762
  271. package/template/node_modules/@sentio/sdk/src/builtin/internal/erc20bytes_processor.ts +0 -531
  272. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/ERC20Bytes__factory.ts +0 -257
  273. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/ERC20__factory.ts +0 -404
  274. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/WETH9__factory.ts +0 -297
  275. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/index.ts +0 -6
  276. package/template/node_modules/@sentio/sdk/src/builtin/internal/index.ts +0 -10
  277. package/template/node_modules/@sentio/sdk/src/builtin/internal/weth9_processor.ts +0 -589
  278. package/template/node_modules/@sentio/sdk/src/builtin/weth9/index.ts +0 -6
  279. package/template/node_modules/@sentio/sdk/src/builtin/weth9/test-utils.ts +0 -89
  280. package/template/node_modules/@sentio/sdk/src/chain-config.ts +0 -6
  281. package/template/node_modules/@sentio/sdk/src/cli/build.ts +0 -196
  282. package/template/node_modules/@sentio/sdk/src/cli/cli.ts +0 -160
  283. package/template/node_modules/@sentio/sdk/src/cli/commands/run-create.ts +0 -36
  284. package/template/node_modules/@sentio/sdk/src/cli/commands/run-login.ts +0 -70
  285. package/template/node_modules/@sentio/sdk/src/cli/config.ts +0 -45
  286. package/template/node_modules/@sentio/sdk/src/cli/key.ts +0 -43
  287. package/template/node_modules/@sentio/sdk/src/cli/solana-code-gen.ts +0 -16
  288. package/template/node_modules/@sentio/sdk/src/cli/upload.ts +0 -88
  289. package/template/node_modules/@sentio/sdk/src/cli/webpack.config.js +0 -42
  290. package/template/node_modules/@sentio/sdk/src/context.ts +0 -103
  291. package/template/node_modules/@sentio/sdk/src/contract-namer.ts +0 -17
  292. package/template/node_modules/@sentio/sdk/src/error.ts +0 -45
  293. package/template/node_modules/@sentio/sdk/src/gen/builtin.ts +0 -22
  294. package/template/node_modules/@sentio/sdk/src/gen/google/protobuf/empty.ts +0 -70
  295. package/template/node_modules/@sentio/sdk/src/gen/processor/protos/processor.ts +0 -3626
  296. package/template/node_modules/@sentio/sdk/src/generic-processor.ts +0 -35
  297. package/template/node_modules/@sentio/sdk/src/index.ts +0 -21
  298. package/template/node_modules/@sentio/sdk/src/loader.ts +0 -24
  299. package/template/node_modules/@sentio/sdk/src/meter.test.ts +0 -16
  300. package/template/node_modules/@sentio/sdk/src/meter.ts +0 -140
  301. package/template/node_modules/@sentio/sdk/src/numberish.test.ts +0 -82
  302. package/template/node_modules/@sentio/sdk/src/numberish.ts +0 -100
  303. package/template/node_modules/@sentio/sdk/src/processor-runner.ts +0 -46
  304. package/template/node_modules/@sentio/sdk/src/processor-state.ts +0 -24
  305. package/template/node_modules/@sentio/sdk/src/promise-or-void.ts +0 -1
  306. package/template/node_modules/@sentio/sdk/src/provider.ts +0 -74
  307. package/template/node_modules/@sentio/sdk/src/service.ts +0 -491
  308. package/template/node_modules/@sentio/sdk/src/solana/builtin/index.ts +0 -2
  309. package/template/node_modules/@sentio/sdk/src/solana/builtin/spl-token-processor.ts +0 -164
  310. package/template/node_modules/@sentio/sdk/src/solana/builtin/types.ts +0 -268
  311. package/template/node_modules/@sentio/sdk/src/solana/builtin/wormhole-processor.ts +0 -178
  312. package/template/node_modules/@sentio/sdk/src/solana-processor.ts +0 -106
  313. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/codegen.ts +0 -315
  314. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/functions.ts +0 -68
  315. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/index.ts +0 -50
  316. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/tsconfig.json +0 -9
  317. package/template/node_modules/@sentio/sdk/src/test/abis/evm/CommitmentPool.json +0 -1034
  318. package/template/node_modules/@sentio/sdk/src/test/abis/evm/anyswapRouter.json +0 -490
  319. package/template/node_modules/@sentio/sdk/src/test/abis/solana/mirrorworld.json +0 -1392
  320. package/template/node_modules/@sentio/sdk/src/test/codegen.test.ts +0 -29
  321. package/template/node_modules/@sentio/sdk/src/test/erc20-template.test.ts +0 -37
  322. package/template/node_modules/@sentio/sdk/src/test/erc20-template.ts +0 -25
  323. package/template/node_modules/@sentio/sdk/src/test/erc20.test.ts +0 -117
  324. package/template/node_modules/@sentio/sdk/src/test/erc20.ts +0 -50
  325. package/template/node_modules/@sentio/sdk/src/test/generic-processor.test.ts +0 -70
  326. package/template/node_modules/@sentio/sdk/src/test/index.ts +0 -2
  327. package/template/node_modules/@sentio/sdk/src/test/metric-utils.ts +0 -49
  328. package/template/node_modules/@sentio/sdk/src/test/mirrorworld.ts +0 -40
  329. package/template/node_modules/@sentio/sdk/src/test/sentio.yaml +0 -4
  330. package/template/node_modules/@sentio/sdk/src/test/solana.test.ts +0 -93
  331. package/template/node_modules/@sentio/sdk/src/test/test-processor-server.ts +0 -258
  332. package/template/node_modules/@sentio/sdk/src/test/test-provider.ts +0 -25
  333. package/template/node_modules/@sentio/sdk/src/test/types/game_wallet.ts +0 -1392
  334. package/template/node_modules/@sentio/sdk/src/test/types/game_wallet_processor.ts +0 -113
  335. package/template/node_modules/@sentio/sdk/src/test/wormhole-token-bridge.ts +0 -21
  336. package/template/node_modules/@sentio/sdk/src/trace.ts +0 -86
  337. package/template/node_modules/@sentio/sdk/src/types/global.d.ts +0 -17
  338. package/template/node_modules/@sentio/sdk/src/utils/chainmap.ts +0 -95
  339. package/template/node_modules/@sentio/sdk/src/utils/convert.ts +0 -26
  340. package/template/node_modules/@sentio/sdk/src/utils/erc20.test.ts +0 -26
  341. package/template/node_modules/@sentio/sdk/src/utils/erc20.ts +0 -66
  342. package/template/node_modules/@sentio/sdk/src/utils/index.ts +0 -3
  343. package/template/node_modules/base-x/LICENSE.md +0 -22
  344. package/template/node_modules/base-x/README.md +0 -73
  345. package/template/node_modules/base-x/package.json +0 -46
  346. package/template/node_modules/base-x/src/index.d.ts +0 -9
  347. package/template/node_modules/base-x/src/index.js +0 -121
  348. package/template/node_modules/bs58/CHANGELOG.md +0 -65
  349. package/template/node_modules/bs58/LICENSE +0 -21
  350. package/template/node_modules/bs58/README.md +0 -91
  351. package/template/node_modules/bs58/index.d.ts +0 -5
  352. package/template/node_modules/bs58/index.js +0 -4
  353. package/template/node_modules/bs58/package.json +0 -39
  354. package/template/src/types/internal/X2y2.ts +0 -684
  355. package/template/src/types/internal/common.ts +0 -46
  356. package/template/src/types/internal/factories/X2y2__factory.ts +0 -436
  357. package/template/src/types/internal/factories/index.ts +0 -4
  358. package/template/src/types/internal/index.ts +0 -6
  359. package/template/src/types/internal/x2y2_processor.ts +0 -1004
  360. package/template/src/types/x2y2/index.ts +0 -6
  361. package/template/src/types/x2y2/test-utils.ts +0 -89
@@ -1,6 +0,0 @@
1
- import { Provider, StaticJsonRpcProvider } from '@ethersproject/providers';
2
- import { Networkish } from '@ethersproject/networks';
3
- import { ChainConfig } from './chain-config';
4
- export declare const DummyProvider: StaticJsonRpcProvider;
5
- export declare function getProvider(networkish?: Networkish): Provider;
6
- export declare function setProvider(config: Record<string, ChainConfig>, concurrency?: number, useChainServer?: boolean): void;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setProvider = exports.getProvider = exports.DummyProvider = void 0;
7
- const providers_1 = require("@ethersproject/providers");
8
- const p_queue_1 = __importDefault(require("p-queue"));
9
- exports.DummyProvider = new providers_1.StaticJsonRpcProvider(undefined, 1);
10
- function getProvider(networkish) {
11
- if (!networkish) {
12
- networkish = 1;
13
- }
14
- const network = (0, providers_1.getNetwork)(networkish);
15
- if (!global.PROCESSOR_STATE.providers) {
16
- throw Error('Provider not set');
17
- }
18
- const value = global.PROCESSOR_STATE.providers.get(network.chainId);
19
- if (value === undefined) {
20
- throw Error('Provider not found for chain ' +
21
- network.chainId +
22
- ', configured chains: ' +
23
- [...global.PROCESSOR_STATE.providers.keys()].join(' '));
24
- }
25
- return value;
26
- }
27
- exports.getProvider = getProvider;
28
- function setProvider(config, concurrency = 4, useChainServer = false) {
29
- global.PROCESSOR_STATE.providers = new Map();
30
- for (const chainIdStr in config) {
31
- if (isNaN(Number.parseInt(chainIdStr))) {
32
- continue;
33
- }
34
- const chainConfig = config[chainIdStr];
35
- const chainId = Number(chainIdStr);
36
- // let providers: StaticJsonRpcProvider[] = []
37
- // for (const http of chainConfig.Https) {
38
- // providers.push(new StaticJsonRpcProvider(http, chainId))
39
- // }
40
- // random shuffle
41
- // providers = providers.sort(() => Math.random() - 0.5)
42
- // const provider = new FallbackProvider(providers)
43
- let rpcAddress = '';
44
- if (useChainServer && chainConfig.ChainServer) {
45
- rpcAddress = chainConfig.ChainServer;
46
- }
47
- else {
48
- const idx = Math.floor(Math.random() * chainConfig.Https.length);
49
- rpcAddress = chainConfig.Https[idx];
50
- }
51
- const provider = new QueuedStaticJsonRpcProvider(rpcAddress, chainId, concurrency);
52
- global.PROCESSOR_STATE.providers.set(chainId, provider);
53
- }
54
- }
55
- exports.setProvider = setProvider;
56
- class QueuedStaticJsonRpcProvider extends providers_1.StaticJsonRpcProvider {
57
- executor;
58
- constructor(url, network, concurrency) {
59
- super(url, network);
60
- this.executor = new p_queue_1.default({ concurrency: concurrency });
61
- }
62
- send(method, params) {
63
- return this.executor.add(() => super.send(method, params));
64
- }
65
- }
66
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAsF;AAEtF,sDAA4B;AAIf,QAAA,aAAa,GAAG,IAAI,iCAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AAEpE,SAAgB,WAAW,CAAC,UAAuB;IACjD,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,CAAC,CAAA;KACf;IACD,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,UAAU,CAAC,CAAA;IAEtC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;QACrC,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAA;KAChC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CACT,+BAA+B;YAC7B,OAAO,CAAC,OAAO;YACf,uBAAuB;YACvB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACzD,CAAA;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAnBD,kCAmBC;AAED,SAAgB,WAAW,CAAC,MAAmC,EAAE,WAAW,GAAG,CAAC,EAAE,cAAc,GAAG,KAAK;IACtG,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;IAE9D,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;QAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE;YACtC,SAAQ;SACT;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QAElC,8CAA8C;QAC9C,0CAA0C;QAC1C,6DAA6D;QAC7D,IAAI;QACJ,iBAAiB;QACjB,wDAAwD;QAExD,mDAAmD;QAEnD,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,IAAI,cAAc,IAAI,WAAW,CAAC,WAAW,EAAE;YAC7C,UAAU,GAAG,WAAW,CAAC,WAAW,CAAA;SACrC;aAAM;YACL,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAChE,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SACpC;QAED,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAClF,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KACxD;AACH,CAAC;AA/BD,kCA+BC;AAED,MAAM,2BAA4B,SAAQ,iCAAqB;IAC7D,QAAQ,CAAQ;IAEhB,YAAY,GAA4B,EAAE,OAAmB,EAAE,WAAmB;QAChF,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,CAAC;CACF","sourcesContent":["import { getNetwork, Provider, StaticJsonRpcProvider } from '@ethersproject/providers'\nimport { Networkish } from '@ethersproject/networks'\nimport PQueue from 'p-queue'\nimport { ConnectionInfo } from '@ethersproject/web'\nimport { ChainConfig } from './chain-config'\n\nexport const DummyProvider = new StaticJsonRpcProvider(undefined, 1)\n\nexport function getProvider(networkish?: Networkish): Provider {\n if (!networkish) {\n networkish = 1\n }\n const network = getNetwork(networkish)\n\n if (!global.PROCESSOR_STATE.providers) {\n throw Error('Provider not set')\n }\n const value = global.PROCESSOR_STATE.providers.get(network.chainId)\n if (value === undefined) {\n throw Error(\n 'Provider not found for chain ' +\n network.chainId +\n ', configured chains: ' +\n [...global.PROCESSOR_STATE.providers.keys()].join(' ')\n )\n }\n return value\n}\n\nexport function setProvider(config: Record<string, ChainConfig>, concurrency = 4, useChainServer = false) {\n global.PROCESSOR_STATE.providers = new Map<number, Provider>()\n\n for (const chainIdStr in config) {\n if (isNaN(Number.parseInt(chainIdStr))) {\n continue\n }\n\n const chainConfig = config[chainIdStr]\n const chainId = Number(chainIdStr)\n\n // let providers: StaticJsonRpcProvider[] = []\n // for (const http of chainConfig.Https) {\n // providers.push(new StaticJsonRpcProvider(http, chainId))\n // }\n // random shuffle\n // providers = providers.sort(() => Math.random() - 0.5)\n\n // const provider = new FallbackProvider(providers)\n\n let rpcAddress = ''\n if (useChainServer && chainConfig.ChainServer) {\n rpcAddress = chainConfig.ChainServer\n } else {\n const idx = Math.floor(Math.random() * chainConfig.Https.length)\n rpcAddress = chainConfig.Https[idx]\n }\n\n const provider = new QueuedStaticJsonRpcProvider(rpcAddress, chainId, concurrency)\n global.PROCESSOR_STATE.providers.set(chainId, provider)\n }\n}\n\nclass QueuedStaticJsonRpcProvider extends StaticJsonRpcProvider {\n executor: PQueue\n\n constructor(url: ConnectionInfo | string, network: Networkish, concurrency: number) {\n super(url, network)\n this.executor = new PQueue({ concurrency: concurrency })\n }\n\n send(method: string, params: Array<any>): Promise<any> {\n return this.executor.add(() => super.send(method, params))\n }\n}\n"]}
@@ -1,31 +0,0 @@
1
- module.exports = {
2
- // branches: ['release', { name: 'main', prerelease: 'rc' }],
3
- branches: ['main'],
4
- plugins: [
5
- [
6
- '@semantic-release/commit-analyzer',
7
- {
8
- preset: 'angular',
9
- releaseRules: [
10
- { type: 'release', "scope": 'major', release: 'major' },
11
- { type: 'release', "scope": 'minor', release: 'minor' },
12
- { type: 'release', "scope": 'patch', release: 'patch' },
13
- { type: 'chore', release: 'patch' },
14
- { type: 'refactor', release: 'patch' },
15
- ],
16
- },
17
- ],
18
- ["@semantic-release/npm", {
19
- // "pkgRoot": "dist"
20
- }],
21
- '@semantic-release/release-notes-generator',
22
- [
23
- '@semantic-release/github',
24
- {
25
- successComment: false,
26
- labels: false,
27
- },
28
- ],
29
- // ['@semantic-release/exec', { publishCmd: 'echo "::set-output name=release_version::${nextRelease.version}"' }],
30
- ],
31
- }
@@ -1,25 +0,0 @@
1
- import { CallContext } from 'nice-grpc';
2
- import { BlockBinding, ProcessResult, ProcessBlocksRequest, ProcessBlocksResponse, ProcessConfigRequest, ProcessConfigResponse, ProcessInstructionsRequest, ProcessInstructionsResponse, ProcessLogsRequest, ProcessLogsResponse, ProcessorServiceImplementation, ProcessTracesRequest, ProcessTracesResponse, ProcessTransactionsRequest, ProcessTransactionsResponse, StartRequest, TraceBinding } from './gen/processor/protos/processor';
3
- import { Empty } from './gen/google/protobuf/empty';
4
- export declare class ProcessorServiceImpl implements ProcessorServiceImplementation {
5
- private eventHandlers;
6
- private traceHandlers;
7
- private blockHandlers;
8
- private started;
9
- private contractConfigs;
10
- private templateInstances;
11
- private readonly loader;
12
- private readonly shutdownHandler?;
13
- constructor(loader: () => void, shutdownHandler?: () => void);
14
- getConfig(request: ProcessConfigRequest, context: CallContext): Promise<ProcessConfigResponse>;
15
- configure(): Promise<void>;
16
- start(request: StartRequest, context: CallContext): Promise<Empty>;
17
- stop(request: Empty, context: CallContext): Promise<Empty>;
18
- processLogs(request: ProcessLogsRequest, context: CallContext): Promise<ProcessLogsResponse>;
19
- processTransactions(request: ProcessTransactionsRequest, context: CallContext): Promise<ProcessTransactionsResponse>;
20
- processInstructions(request: ProcessInstructionsRequest, context: CallContext): Promise<ProcessInstructionsResponse>;
21
- processBlocks(request: ProcessBlocksRequest, context: CallContext): Promise<ProcessBlocksResponse>;
22
- processBlock(binding: BlockBinding): Promise<ProcessResult>;
23
- processTraces(request: ProcessTracesRequest, context: CallContext): Promise<ProcessTracesResponse>;
24
- processTrace(binding: TraceBinding): Promise<ProcessResult>;
25
- }
@@ -1,406 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ProcessorServiceImpl = void 0;
7
- const nice_grpc_1 = require("nice-grpc");
8
- const processor_1 = require("./gen/processor/protos/processor");
9
- const long_1 = __importDefault(require("long"));
10
- const util_1 = require("util");
11
- const DEFAULT_MAX_BLOCK = long_1.default.ZERO;
12
- class ProcessorServiceImpl {
13
- eventHandlers = [];
14
- traceHandlers = [];
15
- blockHandlers = [];
16
- // map from chain id to list of processors
17
- // private blockHandlers = new Map<string, ((block: Block) => Promise<ProcessResult>)[]>()
18
- // private processorsByChainId = new Map<string, BaseProcessor<BaseContract, BoundContractView<BaseContract, any>>>()
19
- started = false;
20
- contractConfigs;
21
- templateInstances;
22
- loader;
23
- shutdownHandler;
24
- constructor(loader, shutdownHandler) {
25
- this.loader = loader;
26
- this.shutdownHandler = shutdownHandler;
27
- }
28
- async getConfig(request, context) {
29
- if (!this.started) {
30
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
31
- }
32
- return {
33
- // TODO project setting
34
- config: undefined,
35
- contractConfigs: this.contractConfigs,
36
- templateInstances: this.templateInstances,
37
- };
38
- }
39
- async configure() {
40
- this.eventHandlers = [];
41
- this.templateInstances = [];
42
- // this.processorsByChainId.clear()
43
- this.contractConfigs = [];
44
- this.templateInstances = [...global.PROCESSOR_STATE.templatesInstances];
45
- // Part 1, prepare EVM processors
46
- for (const processor of global.PROCESSOR_STATE.processors) {
47
- // If server favor incremental update this need to change
48
- // Start basic config for contract
49
- const chainId = processor.getChainId();
50
- // this.processorsByChainId.set(chainId, processor)
51
- const contractConfig = {
52
- processorType: 'user_processor',
53
- contract: {
54
- name: processor.config.name,
55
- chainId: chainId.toString(),
56
- address: processor.config.address,
57
- abi: '',
58
- },
59
- blockConfigs: [],
60
- logConfigs: [],
61
- traceConfigs: [],
62
- startBlock: processor.config.startBlock,
63
- endBlock: DEFAULT_MAX_BLOCK,
64
- instructionConfig: undefined,
65
- };
66
- if (processor.config.endBlock) {
67
- contractConfig.endBlock = processor.config.endBlock;
68
- }
69
- // Step 1. Prepare all the block handlers
70
- for (const blockHandler of processor.blockHandlers) {
71
- const handlerId = this.blockHandlers.push(blockHandler) - 1;
72
- contractConfig.blockConfigs.push({
73
- handlerId: handlerId,
74
- });
75
- }
76
- // Step 2. Prepare all trace handlers
77
- for (const traceHandler of processor.traceHandlers) {
78
- const handlerId = this.traceHandlers.push(traceHandler.handler) - 1;
79
- contractConfig.traceConfigs.push({
80
- signature: traceHandler.signature,
81
- handlerId: handlerId,
82
- });
83
- }
84
- // Step 3. Prepare all the event handlers
85
- for (const eventsHandler of processor.eventHandlers) {
86
- // associate id with filter
87
- const handlerId = this.eventHandlers.push(eventsHandler.handler) - 1;
88
- const logConfig = {
89
- handlerId: handlerId,
90
- filters: [],
91
- };
92
- for (const filter of eventsHandler.filters) {
93
- if (!filter.topics) {
94
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'Topic should not be null');
95
- }
96
- const logFilter = {
97
- topics: [],
98
- };
99
- for (const ts of filter.topics) {
100
- let hashes = [];
101
- if (Array.isArray(ts)) {
102
- hashes = hashes.concat(ts);
103
- }
104
- else if (ts) {
105
- hashes.push(ts);
106
- }
107
- logFilter.topics.push({ hashes: hashes });
108
- }
109
- logConfig.filters.push(logFilter);
110
- }
111
- contractConfig.logConfigs.push(logConfig);
112
- }
113
- // Finish up a contract
114
- this.contractConfigs.push(contractConfig);
115
- }
116
- // Part 2, prepare solana constractors
117
- for (const solanaProcessor of global.PROCESSOR_STATE.solanaProcessors) {
118
- const contractConfig = {
119
- processorType: 'user_processor',
120
- contract: {
121
- name: solanaProcessor.contractName,
122
- chainId: 'SOL_mainnet',
123
- address: solanaProcessor.address,
124
- abi: '',
125
- },
126
- blockConfigs: [],
127
- logConfigs: [],
128
- traceConfigs: [],
129
- startBlock: solanaProcessor.config.startSlot,
130
- endBlock: DEFAULT_MAX_BLOCK,
131
- instructionConfig: {
132
- innerInstruction: solanaProcessor.processInnerInstruction,
133
- parsedInstruction: solanaProcessor.fromParsedInstruction !== null,
134
- rawDataInstruction: solanaProcessor.decodeInstruction !== null,
135
- },
136
- };
137
- this.contractConfigs.push(contractConfig);
138
- }
139
- }
140
- async start(request, context) {
141
- if (this.started) {
142
- return {};
143
- }
144
- this.loader();
145
- for (const instance of request.templateInstances) {
146
- const template = global.PROCESSOR_STATE.templates[instance.templateId];
147
- if (!template) {
148
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'Invalid template contract:' + instance);
149
- }
150
- if (!instance.contract) {
151
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'Contract Empty from:' + instance);
152
- }
153
- template.bind({
154
- name: instance.contract.name,
155
- address: instance.contract.address,
156
- network: Number(instance.contract.chainId),
157
- startBlock: instance.startBlock,
158
- endBlock: instance.endBlock,
159
- });
160
- }
161
- await this.configure();
162
- this.started = true;
163
- return {};
164
- }
165
- async stop(request, context) {
166
- console.log('Server Shutting down in 5 seconds');
167
- if (this.shutdownHandler) {
168
- setTimeout(this.shutdownHandler, 5000);
169
- }
170
- return {};
171
- }
172
- async processLogs(request, context) {
173
- if (!this.started) {
174
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
175
- }
176
- const resp = {
177
- gauges: [],
178
- counters: [],
179
- logs: [],
180
- };
181
- const promises = [];
182
- for (const l of request.logBindings) {
183
- if (!l.log) {
184
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, "Log can't be null");
185
- }
186
- // const jsonString = Buffer.from(l.log.raw.buffer).toString("utf-8")
187
- // const jsonString = String.fromCharCode.apply(null, l.log.raw)
188
- try {
189
- const jsonString = Utf8ArrayToStr(l.log.raw);
190
- const log = JSON.parse(jsonString);
191
- const handler = this.eventHandlers[l.handlerId];
192
- const promise = handler(log).catch((e) => {
193
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, 'error processing log: ' + jsonString + '\n' + e.toString());
194
- });
195
- promises.push(promise);
196
- }
197
- catch (e) {
198
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, 'error parse log: ' + l);
199
- }
200
- }
201
- const results = await Promise.all(promises);
202
- for (const res of results) {
203
- resp.counters = resp.counters.concat(res.counters);
204
- resp.gauges = resp.gauges.concat(res.gauges);
205
- }
206
- let updated = false;
207
- if (global.PROCESSOR_STATE.templatesInstances &&
208
- this.templateInstances.length != global.PROCESSOR_STATE.templatesInstances.length) {
209
- await this.configure();
210
- updated = true;
211
- }
212
- recordRuntimeInfo(resp, processor_1.HandlerType.LOG);
213
- return {
214
- result: resp,
215
- configUpdated: updated,
216
- };
217
- }
218
- async processTransactions(request, context) {
219
- if (!this.started) {
220
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service not started.');
221
- }
222
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNIMPLEMENTED, 'Processing transaction is not suppored.');
223
- }
224
- async processInstructions(request, context) {
225
- if (!this.started) {
226
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service not started.');
227
- }
228
- const result = {
229
- gauges: [],
230
- counters: [],
231
- logs: [],
232
- };
233
- // Only have instruction handlers for solana processors
234
- if (global.PROCESSOR_STATE.solanaProcessors) {
235
- const processorPromises = [];
236
- for (const instruction of request.instructions) {
237
- if (!instruction) {
238
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'instruction cannot be null');
239
- }
240
- processorPromises.push(new Promise((resolve, _) => {
241
- for (const processor of global.PROCESSOR_STATE.solanaProcessors) {
242
- if (processor.address === instruction.programAccountId) {
243
- let res;
244
- if (instruction.parsed) {
245
- res = processor.handleInstruction(JSON.parse(new util_1.TextDecoder().decode(instruction.parsed)));
246
- }
247
- else if (instruction.instructionData) {
248
- res = processor.handleInstruction(instruction.instructionData);
249
- }
250
- else {
251
- continue;
252
- }
253
- if (res) {
254
- try {
255
- res.gauges.forEach((g) => {
256
- if (g.metadata) {
257
- g.metadata.blockNumber = instruction.slot;
258
- }
259
- result.gauges.push(g);
260
- });
261
- res.counters.forEach((c) => {
262
- if (c.metadata) {
263
- c.metadata.blockNumber = instruction.slot;
264
- }
265
- result.counters.push(c);
266
- });
267
- }
268
- catch (e) {
269
- console.error('error processing instruction ' + e.toString());
270
- }
271
- }
272
- else {
273
- console.warn(`Failed to decode the instruction: ${instruction.instructionData} with slot: ${instruction.slot}`);
274
- }
275
- }
276
- }
277
- resolve();
278
- }));
279
- }
280
- await Promise.all(processorPromises);
281
- }
282
- recordRuntimeInfo(result, processor_1.HandlerType.INSTRUCTION);
283
- return {
284
- result,
285
- };
286
- }
287
- async processBlocks(request, context) {
288
- if (!this.started) {
289
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
290
- }
291
- const promises = request.blockBindings.map((binding) => this.processBlock(binding));
292
- const results = await Promise.all(promises);
293
- const res = processor_1.ProcessResult.fromPartial({});
294
- for (const r of results) {
295
- res.counters = res.counters.concat(r.counters);
296
- res.gauges = res.gauges.concat(r.gauges);
297
- }
298
- recordRuntimeInfo(res, processor_1.HandlerType.BLOCK);
299
- return {
300
- result: res,
301
- };
302
- }
303
- async processBlock(binding) {
304
- if (!binding.block) {
305
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, "Block can't be empty");
306
- }
307
- const jsonString = Utf8ArrayToStr(binding.block.raw);
308
- const block = JSON.parse(jsonString);
309
- const resp = {
310
- gauges: [],
311
- counters: [],
312
- logs: [],
313
- };
314
- const promises = [];
315
- for (const handlerId of binding.handlerIds) {
316
- const promise = this.blockHandlers[handlerId](block).catch((e) => {
317
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, 'error processing block: ' + block.number + '\n' + e.toString());
318
- });
319
- promises.push(promise);
320
- }
321
- const allRes = await Promise.all(promises);
322
- for (const res of allRes) {
323
- resp.counters = resp.counters.concat(res.counters);
324
- resp.gauges = resp.gauges.concat(res.gauges);
325
- }
326
- return resp;
327
- }
328
- async processTraces(request, context) {
329
- if (!this.started) {
330
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.UNAVAILABLE, 'Service Not started.');
331
- }
332
- const promises = request.traceBindings.map((binding) => this.processTrace(binding));
333
- const results = await Promise.all(promises);
334
- const res = processor_1.ProcessResult.fromPartial({});
335
- for (const r of results) {
336
- res.counters = res.counters.concat(r.counters);
337
- res.gauges = res.gauges.concat(r.gauges);
338
- }
339
- recordRuntimeInfo(res, processor_1.HandlerType.TRACE);
340
- return {
341
- result: res,
342
- };
343
- }
344
- async processTrace(binding) {
345
- if (!binding.trace) {
346
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, "Trace can't be empty");
347
- }
348
- const jsonString = Utf8ArrayToStr(binding.trace.raw);
349
- const trace = JSON.parse(jsonString);
350
- return this.traceHandlers[binding.handlerId](trace).catch((e) => {
351
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INTERNAL, 'error processing trace: ' + jsonString + '\n' + e.toString());
352
- });
353
- }
354
- }
355
- exports.ProcessorServiceImpl = ProcessorServiceImpl;
356
- // https://ourcodeworld.com/articles/read/164/how-to-convert-an-uint8array-to-string-in-javascript
357
- /* eslint-disable */
358
- function Utf8ArrayToStr(array) {
359
- let out, i, len, c;
360
- let char2, char3;
361
- out = '';
362
- len = array.length;
363
- i = 0;
364
- while (i < len) {
365
- c = array[i++];
366
- switch (c >> 4) {
367
- case 0:
368
- case 1:
369
- case 2:
370
- case 3:
371
- case 4:
372
- case 5:
373
- case 6:
374
- case 7:
375
- // 0xxxxxxx
376
- out += String.fromCharCode(c);
377
- break;
378
- case 12:
379
- case 13:
380
- // 110x xxxx 10xx xxxx
381
- char2 = array[i++];
382
- out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));
383
- break;
384
- case 14:
385
- // 1110 xxxx 10xx xxxx 10xx xxxx
386
- char2 = array[i++];
387
- char3 = array[i++];
388
- out += String.fromCharCode(((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0));
389
- break;
390
- }
391
- }
392
- return out;
393
- }
394
- function recordRuntimeInfo(results, handlerType) {
395
- results.gauges.forEach((e) => {
396
- e.runtimeInfo = {
397
- from: handlerType,
398
- };
399
- });
400
- results.counters.forEach((e) => {
401
- e.runtimeInfo = {
402
- from: handlerType,
403
- };
404
- });
405
- }
406
- //# sourceMappingURL=service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Block, Log } from '@ethersproject/abstract-provider'\nimport { CallContext, ServerError, Status } from 'nice-grpc'\n\nimport {\n BlockBinding,\n ContractConfig,\n HandlerType,\n LogFilter,\n LogHandlerConfig,\n ProcessResult,\n ProcessBlocksRequest,\n ProcessBlocksResponse,\n ProcessConfigRequest,\n ProcessConfigResponse,\n ProcessInstructionsRequest,\n ProcessInstructionsResponse,\n ProcessLogsRequest,\n ProcessLogsResponse,\n ProcessorServiceImplementation,\n ProcessTracesRequest,\n ProcessTracesResponse,\n ProcessTransactionsRequest,\n ProcessTransactionsResponse,\n StartRequest,\n TemplateInstance,\n TraceBinding,\n} from './gen/processor/protos/processor'\n\nimport { Empty } from './gen/google/protobuf/empty'\nimport Long from 'long'\nimport { TextDecoder } from 'util'\nimport { Trace } from './trace'\n\nconst DEFAULT_MAX_BLOCK = Long.ZERO\n\nexport class ProcessorServiceImpl implements ProcessorServiceImplementation {\n private eventHandlers: ((event: Log) => Promise<ProcessResult>)[] = []\n private traceHandlers: ((trace: Trace) => Promise<ProcessResult>)[] = []\n private blockHandlers: ((block: Block) => Promise<ProcessResult>)[] = []\n\n // map from chain id to list of processors\n // private blockHandlers = new Map<string, ((block: Block) => Promise<ProcessResult>)[]>()\n // private processorsByChainId = new Map<string, BaseProcessor<BaseContract, BoundContractView<BaseContract, any>>>()\n\n private started = false\n private contractConfigs: ContractConfig[]\n private templateInstances: TemplateInstance[]\n private readonly loader: () => void\n\n private readonly shutdownHandler?: () => void\n\n constructor(loader: () => void, shutdownHandler?: () => void) {\n this.loader = loader\n this.shutdownHandler = shutdownHandler\n }\n\n async getConfig(request: ProcessConfigRequest, context: CallContext): Promise<ProcessConfigResponse> {\n if (!this.started) {\n throw new ServerError(Status.UNAVAILABLE, 'Service Not started.')\n }\n return {\n // TODO project setting\n config: undefined,\n contractConfigs: this.contractConfigs,\n templateInstances: this.templateInstances,\n }\n }\n\n async configure() {\n this.eventHandlers = []\n this.templateInstances = []\n // this.processorsByChainId.clear()\n this.contractConfigs = []\n\n this.templateInstances = [...global.PROCESSOR_STATE.templatesInstances]\n\n // Part 1, prepare EVM processors\n for (const processor of global.PROCESSOR_STATE.processors) {\n // If server favor incremental update this need to change\n // Start basic config for contract\n const chainId = processor.getChainId()\n // this.processorsByChainId.set(chainId, processor)\n\n const contractConfig: ContractConfig = {\n processorType: 'user_processor',\n contract: {\n name: processor.config.name,\n chainId: chainId.toString(),\n address: processor.config.address,\n abi: '',\n },\n blockConfigs: [],\n logConfigs: [],\n traceConfigs: [],\n startBlock: processor.config.startBlock,\n endBlock: DEFAULT_MAX_BLOCK,\n instructionConfig: undefined,\n }\n if (processor.config.endBlock) {\n contractConfig.endBlock = processor.config.endBlock\n }\n\n // Step 1. Prepare all the block handlers\n for (const blockHandler of processor.blockHandlers) {\n const handlerId = this.blockHandlers.push(blockHandler) - 1\n contractConfig.blockConfigs.push({\n handlerId: handlerId,\n })\n }\n\n // Step 2. Prepare all trace handlers\n for (const traceHandler of processor.traceHandlers) {\n const handlerId = this.traceHandlers.push(traceHandler.handler) - 1\n contractConfig.traceConfigs.push({\n signature: traceHandler.signature,\n handlerId: handlerId,\n })\n }\n\n // Step 3. Prepare all the event handlers\n for (const eventsHandler of processor.eventHandlers) {\n // associate id with filter\n const handlerId = this.eventHandlers.push(eventsHandler.handler) - 1\n const logConfig: LogHandlerConfig = {\n handlerId: handlerId,\n filters: [],\n }\n\n for (const filter of eventsHandler.filters) {\n if (!filter.topics) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Topic should not be null')\n }\n const logFilter: LogFilter = {\n topics: [],\n }\n\n for (const ts of filter.topics) {\n let hashes: string[] = []\n if (Array.isArray(ts)) {\n hashes = hashes.concat(ts)\n } else if (ts) {\n hashes.push(ts)\n }\n logFilter.topics.push({ hashes: hashes })\n }\n logConfig.filters.push(logFilter)\n }\n contractConfig.logConfigs.push(logConfig)\n }\n\n // Finish up a contract\n this.contractConfigs.push(contractConfig)\n }\n\n // Part 2, prepare solana constractors\n for (const solanaProcessor of global.PROCESSOR_STATE.solanaProcessors) {\n const contractConfig: ContractConfig = {\n processorType: 'user_processor',\n contract: {\n name: solanaProcessor.contractName,\n chainId: 'SOL_mainnet', // TODO set in processor\n address: solanaProcessor.address,\n abi: '',\n },\n blockConfigs: [],\n logConfigs: [],\n traceConfigs: [],\n startBlock: solanaProcessor.config.startSlot,\n endBlock: DEFAULT_MAX_BLOCK,\n instructionConfig: {\n innerInstruction: solanaProcessor.processInnerInstruction,\n parsedInstruction: solanaProcessor.fromParsedInstruction !== null,\n rawDataInstruction: solanaProcessor.decodeInstruction !== null,\n },\n }\n this.contractConfigs.push(contractConfig)\n }\n }\n\n async start(request: StartRequest, context: CallContext): Promise<Empty> {\n if (this.started) {\n return {}\n }\n\n this.loader()\n\n for (const instance of request.templateInstances) {\n const template = global.PROCESSOR_STATE.templates[instance.templateId]\n if (!template) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Invalid template contract:' + instance)\n }\n if (!instance.contract) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Contract Empty from:' + instance)\n }\n template.bind({\n name: instance.contract.name,\n address: instance.contract.address,\n network: Number(instance.contract.chainId),\n startBlock: instance.startBlock,\n endBlock: instance.endBlock,\n })\n }\n await this.configure()\n this.started = true\n return {}\n }\n\n async stop(request: Empty, context: CallContext): Promise<Empty> {\n console.log('Server Shutting down in 5 seconds')\n if (this.shutdownHandler) {\n setTimeout(this.shutdownHandler, 5000)\n }\n return {}\n }\n\n async processLogs(request: ProcessLogsRequest, context: CallContext): Promise<ProcessLogsResponse> {\n if (!this.started) {\n throw new ServerError(Status.UNAVAILABLE, 'Service Not started.')\n }\n\n const resp: ProcessResult = {\n gauges: [],\n counters: [],\n logs: [],\n }\n\n const promises: Promise<ProcessResult>[] = []\n for (const l of request.logBindings) {\n if (!l.log) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Log can't be null\")\n }\n // const jsonString = Buffer.from(l.log.raw.buffer).toString(\"utf-8\")\n // const jsonString = String.fromCharCode.apply(null, l.log.raw)\n\n try {\n const jsonString = Utf8ArrayToStr(l.log.raw)\n const log: Log = JSON.parse(jsonString)\n const handler = this.eventHandlers[l.handlerId]\n const promise = handler(log).catch((e) => {\n throw new ServerError(Status.INTERNAL, 'error processing log: ' + jsonString + '\\n' + e.toString())\n })\n\n promises.push(promise)\n } catch (e) {\n throw new ServerError(Status.INTERNAL, 'error parse log: ' + l)\n }\n }\n\n const results = await Promise.all(promises)\n for (const res of results) {\n resp.counters = resp.counters.concat(res.counters)\n resp.gauges = resp.gauges.concat(res.gauges)\n }\n\n let updated = false\n if (\n global.PROCESSOR_STATE.templatesInstances &&\n this.templateInstances.length != global.PROCESSOR_STATE.templatesInstances.length\n ) {\n await this.configure()\n updated = true\n }\n\n recordRuntimeInfo(resp, HandlerType.LOG)\n return {\n result: resp,\n configUpdated: updated,\n }\n }\n\n async processTransactions(\n request: ProcessTransactionsRequest,\n context: CallContext\n ): Promise<ProcessTransactionsResponse> {\n if (!this.started) {\n throw new ServerError(Status.UNAVAILABLE, 'Service not started.')\n }\n\n throw new ServerError(Status.UNIMPLEMENTED, 'Processing transaction is not suppored.')\n }\n\n async processInstructions(\n request: ProcessInstructionsRequest,\n context: CallContext\n ): Promise<ProcessInstructionsResponse> {\n if (!this.started) {\n throw new ServerError(Status.UNAVAILABLE, 'Service not started.')\n }\n\n const result: ProcessResult = {\n gauges: [],\n counters: [],\n logs: [],\n }\n\n // Only have instruction handlers for solana processors\n if (global.PROCESSOR_STATE.solanaProcessors) {\n const processorPromises: Promise<void>[] = []\n for (const instruction of request.instructions) {\n if (!instruction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'instruction cannot be null')\n }\n\n processorPromises.push(\n new Promise((resolve, _) => {\n for (const processor of global.PROCESSOR_STATE.solanaProcessors) {\n if (processor.address === instruction.programAccountId) {\n let res: ProcessResult | null\n if (instruction.parsed) {\n res = processor.handleInstruction(JSON.parse(new TextDecoder().decode(instruction.parsed)))\n } else if (instruction.instructionData) {\n res = processor.handleInstruction(instruction.instructionData)\n } else {\n continue\n }\n if (res) {\n try {\n res.gauges.forEach((g) => {\n if (g.metadata) {\n g.metadata.blockNumber = instruction.slot\n }\n result.gauges.push(g)\n })\n res.counters.forEach((c) => {\n if (c.metadata) {\n c.metadata.blockNumber = instruction.slot\n }\n result.counters.push(c)\n })\n } catch (e) {\n console.error('error processing instruction ' + e.toString())\n }\n } else {\n console.warn(\n `Failed to decode the instruction: ${instruction.instructionData} with slot: ${instruction.slot}`\n )\n }\n }\n }\n resolve()\n })\n )\n }\n\n await Promise.all(processorPromises)\n }\n\n recordRuntimeInfo(result, HandlerType.INSTRUCTION)\n return {\n result,\n }\n }\n\n async processBlocks(request: ProcessBlocksRequest, context: CallContext): Promise<ProcessBlocksResponse> {\n if (!this.started) {\n throw new ServerError(Status.UNAVAILABLE, 'Service Not started.')\n }\n\n const promises = request.blockBindings.map((binding) => this.processBlock(binding))\n const results = await Promise.all(promises)\n\n const res = ProcessResult.fromPartial({})\n\n for (const r of results) {\n res.counters = res.counters.concat(r.counters)\n res.gauges = res.gauges.concat(r.gauges)\n }\n\n recordRuntimeInfo(res, HandlerType.BLOCK)\n return {\n result: res,\n }\n }\n\n async processBlock(binding: BlockBinding): Promise<ProcessResult> {\n if (!binding.block) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Block can't be empty\")\n }\n const jsonString = Utf8ArrayToStr(binding.block.raw)\n\n const block: Block = JSON.parse(jsonString)\n\n const resp: ProcessResult = {\n gauges: [],\n counters: [],\n logs: [],\n }\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of binding.handlerIds) {\n const promise = this.blockHandlers[handlerId](block).catch((e) => {\n throw new ServerError(Status.INTERNAL, 'error processing block: ' + block.number + '\\n' + e.toString())\n })\n promises.push(promise)\n }\n const allRes = await Promise.all(promises)\n for (const res of allRes) {\n resp.counters = resp.counters.concat(res.counters)\n resp.gauges = resp.gauges.concat(res.gauges)\n }\n return resp\n }\n\n async processTraces(request: ProcessTracesRequest, context: CallContext): Promise<ProcessTracesResponse> {\n if (!this.started) {\n throw new ServerError(Status.UNAVAILABLE, 'Service Not started.')\n }\n\n const promises = request.traceBindings.map((binding) => this.processTrace(binding))\n const results = await Promise.all(promises)\n\n const res = ProcessResult.fromPartial({})\n\n for (const r of results) {\n res.counters = res.counters.concat(r.counters)\n res.gauges = res.gauges.concat(r.gauges)\n }\n\n recordRuntimeInfo(res, HandlerType.TRACE)\n return {\n result: res,\n }\n }\n\n async processTrace(binding: TraceBinding): Promise<ProcessResult> {\n if (!binding.trace) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Trace can't be empty\")\n }\n const jsonString = Utf8ArrayToStr(binding.trace.raw)\n const trace: Trace = JSON.parse(jsonString)\n\n return this.traceHandlers[binding.handlerId](trace).catch((e) => {\n throw new ServerError(Status.INTERNAL, 'error processing trace: ' + jsonString + '\\n' + e.toString())\n })\n }\n}\n\n// https://ourcodeworld.com/articles/read/164/how-to-convert-an-uint8array-to-string-in-javascript\n/* eslint-disable */\nfunction Utf8ArrayToStr(array: Uint8Array) {\n let out, i, len, c\n let char2, char3\n\n out = ''\n len = array.length\n i = 0\n while (i < len) {\n c = array[i++]\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c)\n break\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++]\n out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f))\n break\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++]\n char3 = array[i++]\n out += String.fromCharCode(((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0))\n break\n }\n }\n\n return out\n}\n\nfunction recordRuntimeInfo(results: ProcessResult, handlerType: HandlerType) {\n results.gauges.forEach((e) => {\n e.runtimeInfo = {\n from: handlerType,\n }\n })\n\n results.counters.forEach((e) => {\n e.runtimeInfo = {\n from: handlerType,\n }\n })\n}\n"]}
@@ -1,2 +0,0 @@
1
- export * from './spl-token-processor';
2
- export * from './wormhole-processor';
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./spl-token-processor"), exports);
18
- __exportStar(require("./wormhole-processor"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/solana/builtin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,uDAAoC","sourcesContent":["export * from './spl-token-processor'\nexport * from './wormhole-processor'"]}