@sentio/sdk 1.13.0 → 1.13.2

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 (355) 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/test/index.d.ts +1 -0
  4. package/lib/test/index.js +5 -1
  5. package/lib/test/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/src/cli/commands/run-create.ts +3 -0
  8. package/src/test/index.ts +1 -0
  9. package/template/package.json +2 -3
  10. package/template/src/processor.test.ts +1 -1
  11. package/template/src/processor.ts +20 -16
  12. package/template/node_modules/@sentio/sdk/lib/base-processor-template.d.ts +0 -27
  13. package/template/node_modules/@sentio/sdk/lib/base-processor-template.js +0 -80
  14. package/template/node_modules/@sentio/sdk/lib/base-processor-template.js.map +0 -1
  15. package/template/node_modules/@sentio/sdk/lib/base-processor.d.ts +0 -30
  16. package/template/node_modules/@sentio/sdk/lib/base-processor.js +0 -148
  17. package/template/node_modules/@sentio/sdk/lib/base-processor.js.map +0 -1
  18. package/template/node_modules/@sentio/sdk/lib/bind-options.d.ts +0 -21
  19. package/template/node_modules/@sentio/sdk/lib/bind-options.js +0 -42
  20. package/template/node_modules/@sentio/sdk/lib/bind-options.js.map +0 -1
  21. package/template/node_modules/@sentio/sdk/lib/binds.d.ts +0 -10
  22. package/template/node_modules/@sentio/sdk/lib/binds.js +0 -59
  23. package/template/node_modules/@sentio/sdk/lib/binds.js.map +0 -1
  24. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/index.d.ts +0 -2
  25. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/index.js +0 -22
  26. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/index.js.map +0 -1
  27. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/test-utils.d.ts +0 -5
  28. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/test-utils.js +0 -46
  29. package/template/node_modules/@sentio/sdk/lib/builtin/erc20/test-utils.js.map +0 -1
  30. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/index.d.ts +0 -2
  31. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/index.js +0 -22
  32. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/index.js.map +0 -1
  33. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/test-utils.d.ts +0 -4
  34. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/test-utils.js +0 -35
  35. package/template/node_modules/@sentio/sdk/lib/builtin/erc20bytes/test-utils.js.map +0 -1
  36. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20.d.ts +0 -307
  37. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20.js +0 -3
  38. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20.js.map +0 -1
  39. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20Bytes.d.ts +0 -166
  40. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20Bytes.js +0 -3
  41. package/template/node_modules/@sentio/sdk/lib/builtin/internal/ERC20Bytes.js.map +0 -1
  42. package/template/node_modules/@sentio/sdk/lib/builtin/internal/WETH9.d.ts +0 -221
  43. package/template/node_modules/@sentio/sdk/lib/builtin/internal/WETH9.js +0 -3
  44. package/template/node_modules/@sentio/sdk/lib/builtin/internal/WETH9.js.map +0 -1
  45. package/template/node_modules/@sentio/sdk/lib/builtin/internal/common.d.ts +0 -22
  46. package/template/node_modules/@sentio/sdk/lib/builtin/internal/common.js +0 -3
  47. package/template/node_modules/@sentio/sdk/lib/builtin/internal/common.js.map +0 -1
  48. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20_processor.d.ts +0 -184
  49. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20_processor.js +0 -453
  50. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20_processor.js.map +0 -1
  51. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20bytes_processor.d.ts +0 -110
  52. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20bytes_processor.js +0 -325
  53. package/template/node_modules/@sentio/sdk/lib/builtin/internal/erc20bytes_processor.js.map +0 -1
  54. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20Bytes__factory.d.ts +0 -48
  55. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20Bytes__factory.js +0 -254
  56. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +0 -1
  57. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20__factory.d.ts +0 -42
  58. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20__factory.js +0 -404
  59. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/ERC20__factory.js.map +0 -1
  60. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/WETH9__factory.d.ts +0 -45
  61. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/WETH9__factory.js +0 -297
  62. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/WETH9__factory.js.map +0 -1
  63. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/index.d.ts +0 -3
  64. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/index.js +0 -13
  65. package/template/node_modules/@sentio/sdk/lib/builtin/internal/factories/index.js.map +0 -1
  66. package/template/node_modules/@sentio/sdk/lib/builtin/internal/index.d.ts +0 -7
  67. package/template/node_modules/@sentio/sdk/lib/builtin/internal/index.js +0 -34
  68. package/template/node_modules/@sentio/sdk/lib/builtin/internal/index.js.map +0 -1
  69. package/template/node_modules/@sentio/sdk/lib/builtin/internal/weth9_processor.d.ts +0 -126
  70. package/template/node_modules/@sentio/sdk/lib/builtin/internal/weth9_processor.js +0 -361
  71. package/template/node_modules/@sentio/sdk/lib/builtin/internal/weth9_processor.js.map +0 -1
  72. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/index.d.ts +0 -2
  73. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/index.js +0 -22
  74. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/index.js.map +0 -1
  75. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/test-utils.d.ts +0 -6
  76. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/test-utils.js +0 -57
  77. package/template/node_modules/@sentio/sdk/lib/builtin/weth9/test-utils.js.map +0 -1
  78. package/template/node_modules/@sentio/sdk/lib/chain-config.d.ts +0 -6
  79. package/template/node_modules/@sentio/sdk/lib/chain-config.js +0 -3
  80. package/template/node_modules/@sentio/sdk/lib/chain-config.js.map +0 -1
  81. package/template/node_modules/@sentio/sdk/lib/cli/build.d.ts +0 -4
  82. package/template/node_modules/@sentio/sdk/lib/cli/build.js +0 -178
  83. package/template/node_modules/@sentio/sdk/lib/cli/build.js.map +0 -1
  84. package/template/node_modules/@sentio/sdk/lib/cli/cli.d.ts +0 -2
  85. package/template/node_modules/@sentio/sdk/lib/cli/cli.js +0 -163
  86. package/template/node_modules/@sentio/sdk/lib/cli/cli.js.map +0 -1
  87. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-create.d.ts +0 -1
  88. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-create.js +0 -43
  89. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-create.js.map +0 -1
  90. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-login.d.ts +0 -1
  91. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-login.js +0 -77
  92. package/template/node_modules/@sentio/sdk/lib/cli/commands/run-login.js.map +0 -1
  93. package/template/node_modules/@sentio/sdk/lib/cli/config.d.ts +0 -16
  94. package/template/node_modules/@sentio/sdk/lib/cli/config.js +0 -36
  95. package/template/node_modules/@sentio/sdk/lib/cli/config.js.map +0 -1
  96. package/template/node_modules/@sentio/sdk/lib/cli/key.d.ts +0 -2
  97. package/template/node_modules/@sentio/sdk/lib/cli/key.js +0 -44
  98. package/template/node_modules/@sentio/sdk/lib/cli/key.js.map +0 -1
  99. package/template/node_modules/@sentio/sdk/lib/cli/solana-code-gen.d.ts +0 -2
  100. package/template/node_modules/@sentio/sdk/lib/cli/solana-code-gen.js +0 -19
  101. package/template/node_modules/@sentio/sdk/lib/cli/solana-code-gen.js.map +0 -1
  102. package/template/node_modules/@sentio/sdk/lib/cli/upload.d.ts +0 -2
  103. package/template/node_modules/@sentio/sdk/lib/cli/upload.js +0 -85
  104. package/template/node_modules/@sentio/sdk/lib/cli/upload.js.map +0 -1
  105. package/template/node_modules/@sentio/sdk/lib/cli/webpack.config.js +0 -42
  106. package/template/node_modules/@sentio/sdk/lib/context.d.ts +0 -49
  107. package/template/node_modules/@sentio/sdk/lib/context.js +0 -93
  108. package/template/node_modules/@sentio/sdk/lib/context.js.map +0 -1
  109. package/template/node_modules/@sentio/sdk/lib/contract-namer.d.ts +0 -6
  110. package/template/node_modules/@sentio/sdk/lib/contract-namer.js +0 -20
  111. package/template/node_modules/@sentio/sdk/lib/contract-namer.js.map +0 -1
  112. package/template/node_modules/@sentio/sdk/lib/error.d.ts +0 -7
  113. package/template/node_modules/@sentio/sdk/lib/error.js +0 -43
  114. package/template/node_modules/@sentio/sdk/lib/error.js.map +0 -1
  115. package/template/node_modules/@sentio/sdk/lib/gen/builtin.d.ts +0 -6
  116. package/template/node_modules/@sentio/sdk/lib/gen/builtin.js +0 -3
  117. package/template/node_modules/@sentio/sdk/lib/gen/builtin.js.map +0 -1
  118. package/template/node_modules/@sentio/sdk/lib/gen/google/protobuf/empty.d.ts +0 -16
  119. package/template/node_modules/@sentio/sdk/lib/gen/google/protobuf/empty.js +0 -47
  120. package/template/node_modules/@sentio/sdk/lib/gen/google/protobuf/empty.js.map +0 -1
  121. package/template/node_modules/@sentio/sdk/lib/gen/processor/protos/processor.d.ts +0 -666
  122. package/template/node_modules/@sentio/sdk/lib/gen/processor/protos/processor.js +0 -2837
  123. package/template/node_modules/@sentio/sdk/lib/gen/processor/protos/processor.js.map +0 -1
  124. package/template/node_modules/@sentio/sdk/lib/generic-processor.d.ts +0 -10
  125. package/template/node_modules/@sentio/sdk/lib/generic-processor.js +0 -32
  126. package/template/node_modules/@sentio/sdk/lib/generic-processor.js.map +0 -1
  127. package/template/node_modules/@sentio/sdk/lib/index.d.ts +0 -18
  128. package/template/node_modules/@sentio/sdk/lib/index.js +0 -63
  129. package/template/node_modules/@sentio/sdk/lib/index.js.map +0 -1
  130. package/template/node_modules/@sentio/sdk/lib/loader.d.ts +0 -5
  131. package/template/node_modules/@sentio/sdk/lib/loader.js +0 -30
  132. package/template/node_modules/@sentio/sdk/lib/loader.js.map +0 -1
  133. package/template/node_modules/@sentio/sdk/lib/meter.d.ts +0 -26
  134. package/template/node_modules/@sentio/sdk/lib/meter.js +0 -131
  135. package/template/node_modules/@sentio/sdk/lib/meter.js.map +0 -1
  136. package/template/node_modules/@sentio/sdk/lib/meter.test.d.ts +0 -1
  137. package/template/node_modules/@sentio/sdk/lib/meter.test.js +0 -16
  138. package/template/node_modules/@sentio/sdk/lib/meter.test.js.map +0 -1
  139. package/template/node_modules/@sentio/sdk/lib/numberish.d.ts +0 -6
  140. package/template/node_modules/@sentio/sdk/lib/numberish.js +0 -96
  141. package/template/node_modules/@sentio/sdk/lib/numberish.js.map +0 -1
  142. package/template/node_modules/@sentio/sdk/lib/numberish.test.d.ts +0 -1
  143. package/template/node_modules/@sentio/sdk/lib/numberish.test.js +0 -70
  144. package/template/node_modules/@sentio/sdk/lib/numberish.test.js.map +0 -1
  145. package/template/node_modules/@sentio/sdk/lib/processor-runner.d.ts +0 -2
  146. package/template/node_modules/@sentio/sdk/lib/processor-runner.js +0 -40
  147. package/template/node_modules/@sentio/sdk/lib/processor-runner.js.map +0 -1
  148. package/template/node_modules/@sentio/sdk/lib/processor-state.d.ts +0 -16
  149. package/template/node_modules/@sentio/sdk/lib/processor-state.js +0 -20
  150. package/template/node_modules/@sentio/sdk/lib/processor-state.js.map +0 -1
  151. package/template/node_modules/@sentio/sdk/lib/promise-or-void.d.ts +0 -1
  152. package/template/node_modules/@sentio/sdk/lib/promise-or-void.js +0 -3
  153. package/template/node_modules/@sentio/sdk/lib/promise-or-void.js.map +0 -1
  154. package/template/node_modules/@sentio/sdk/lib/provider.d.ts +0 -6
  155. package/template/node_modules/@sentio/sdk/lib/provider.js +0 -66
  156. package/template/node_modules/@sentio/sdk/lib/provider.js.map +0 -1
  157. package/template/node_modules/@sentio/sdk/lib/release.config.js +0 -31
  158. package/template/node_modules/@sentio/sdk/lib/service.d.ts +0 -25
  159. package/template/node_modules/@sentio/sdk/lib/service.js +0 -406
  160. package/template/node_modules/@sentio/sdk/lib/service.js.map +0 -1
  161. package/template/node_modules/@sentio/sdk/lib/solana/builtin/index.d.ts +0 -2
  162. package/template/node_modules/@sentio/sdk/lib/solana/builtin/index.js +0 -19
  163. package/template/node_modules/@sentio/sdk/lib/solana/builtin/index.js.map +0 -1
  164. package/template/node_modules/@sentio/sdk/lib/solana/builtin/spl-token-processor.d.ts +0 -26
  165. package/template/node_modules/@sentio/sdk/lib/solana/builtin/spl-token-processor.js +0 -138
  166. package/template/node_modules/@sentio/sdk/lib/solana/builtin/spl-token-processor.js.map +0 -1
  167. package/template/node_modules/@sentio/sdk/lib/solana/builtin/types.d.ts +0 -330
  168. package/template/node_modules/@sentio/sdk/lib/solana/builtin/types.js +0 -203
  169. package/template/node_modules/@sentio/sdk/lib/solana/builtin/types.js.map +0 -1
  170. package/template/node_modules/@sentio/sdk/lib/solana/builtin/wormhole-processor.d.ts +0 -18
  171. package/template/node_modules/@sentio/sdk/lib/solana/builtin/wormhole-processor.js +0 -192
  172. package/template/node_modules/@sentio/sdk/lib/solana/builtin/wormhole-processor.js.map +0 -1
  173. package/template/node_modules/@sentio/sdk/lib/solana-processor.d.ts +0 -34
  174. package/template/node_modules/@sentio/sdk/lib/solana-processor.js +0 -95
  175. package/template/node_modules/@sentio/sdk/lib/solana-processor.js.map +0 -1
  176. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/codegen.d.ts +0 -4
  177. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/codegen.js +0 -292
  178. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/codegen.js.map +0 -1
  179. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/functions.d.ts +0 -3
  180. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/functions.js +0 -61
  181. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/functions.js.map +0 -1
  182. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/index.d.ts +0 -6
  183. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/index.js +0 -51
  184. package/template/node_modules/@sentio/sdk/lib/target-ethers-sentio/index.js.map +0 -1
  185. package/template/node_modules/@sentio/sdk/lib/test/codegen.test.d.ts +0 -1
  186. package/template/node_modules/@sentio/sdk/lib/test/codegen.test.js +0 -49
  187. package/template/node_modules/@sentio/sdk/lib/test/codegen.test.js.map +0 -1
  188. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.d.ts +0 -1
  189. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.js +0 -23
  190. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.js.map +0 -1
  191. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.test.d.ts +0 -1
  192. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.test.js +0 -37
  193. package/template/node_modules/@sentio/sdk/lib/test/erc20-template.test.js.map +0 -1
  194. package/template/node_modules/@sentio/sdk/lib/test/erc20.d.ts +0 -1
  195. package/template/node_modules/@sentio/sdk/lib/test/erc20.js +0 -44
  196. package/template/node_modules/@sentio/sdk/lib/test/erc20.js.map +0 -1
  197. package/template/node_modules/@sentio/sdk/lib/test/erc20.test.d.ts +0 -1
  198. package/template/node_modules/@sentio/sdk/lib/test/erc20.test.js +0 -96
  199. package/template/node_modules/@sentio/sdk/lib/test/erc20.test.js.map +0 -1
  200. package/template/node_modules/@sentio/sdk/lib/test/generic-processor.test.d.ts +0 -1
  201. package/template/node_modules/@sentio/sdk/lib/test/generic-processor.test.js +0 -59
  202. package/template/node_modules/@sentio/sdk/lib/test/generic-processor.test.js.map +0 -1
  203. package/template/node_modules/@sentio/sdk/lib/test/index.d.ts +0 -2
  204. package/template/node_modules/@sentio/sdk/lib/test/index.js +0 -8
  205. package/template/node_modules/@sentio/sdk/lib/test/index.js.map +0 -1
  206. package/template/node_modules/@sentio/sdk/lib/test/metric-utils.d.ts +0 -6
  207. package/template/node_modules/@sentio/sdk/lib/test/metric-utils.js +0 -50
  208. package/template/node_modules/@sentio/sdk/lib/test/metric-utils.js.map +0 -1
  209. package/template/node_modules/@sentio/sdk/lib/test/mirrorworld.d.ts +0 -1
  210. package/template/node_modules/@sentio/sdk/lib/test/mirrorworld.js +0 -42
  211. package/template/node_modules/@sentio/sdk/lib/test/mirrorworld.js.map +0 -1
  212. package/template/node_modules/@sentio/sdk/lib/test/solana.test.d.ts +0 -1
  213. package/template/node_modules/@sentio/sdk/lib/test/solana.test.js +0 -90
  214. package/template/node_modules/@sentio/sdk/lib/test/solana.test.js.map +0 -1
  215. package/template/node_modules/@sentio/sdk/lib/test/test-processor-server.d.ts +0 -34
  216. package/template/node_modules/@sentio/sdk/lib/test/test-processor-server.js +0 -205
  217. package/template/node_modules/@sentio/sdk/lib/test/test-processor-server.js.map +0 -1
  218. package/template/node_modules/@sentio/sdk/lib/test/test-provider.d.ts +0 -1
  219. package/template/node_modules/@sentio/sdk/lib/test/test-provider.js +0 -25
  220. package/template/node_modules/@sentio/sdk/lib/test/test-provider.js.map +0 -1
  221. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet.d.ts +0 -45
  222. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet.js +0 -1396
  223. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet.js.map +0 -1
  224. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet_processor.d.ts +0 -107
  225. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet_processor.js +0 -105
  226. package/template/node_modules/@sentio/sdk/lib/test/types/game_wallet_processor.js.map +0 -1
  227. package/template/node_modules/@sentio/sdk/lib/test/wormhole-token-bridge.d.ts +0 -1
  228. package/template/node_modules/@sentio/sdk/lib/test/wormhole-token-bridge.js +0 -22
  229. package/template/node_modules/@sentio/sdk/lib/test/wormhole-token-bridge.js.map +0 -1
  230. package/template/node_modules/@sentio/sdk/lib/trace.d.ts +0 -35
  231. package/template/node_modules/@sentio/sdk/lib/trace.js +0 -43
  232. package/template/node_modules/@sentio/sdk/lib/trace.js.map +0 -1
  233. package/template/node_modules/@sentio/sdk/lib/utils/chainmap.d.ts +0 -2
  234. package/template/node_modules/@sentio/sdk/lib/utils/chainmap.js +0 -98
  235. package/template/node_modules/@sentio/sdk/lib/utils/chainmap.js.map +0 -1
  236. package/template/node_modules/@sentio/sdk/lib/utils/convert.d.ts +0 -5
  237. package/template/node_modules/@sentio/sdk/lib/utils/convert.js +0 -27
  238. package/template/node_modules/@sentio/sdk/lib/utils/convert.js.map +0 -1
  239. package/template/node_modules/@sentio/sdk/lib/utils/erc20.d.ts +0 -14
  240. package/template/node_modules/@sentio/sdk/lib/utils/erc20.js +0 -62
  241. package/template/node_modules/@sentio/sdk/lib/utils/erc20.js.map +0 -1
  242. package/template/node_modules/@sentio/sdk/lib/utils/erc20.test.d.ts +0 -1
  243. package/template/node_modules/@sentio/sdk/lib/utils/erc20.test.js +0 -23
  244. package/template/node_modules/@sentio/sdk/lib/utils/erc20.test.js.map +0 -1
  245. package/template/node_modules/@sentio/sdk/lib/utils/index.d.ts +0 -3
  246. package/template/node_modules/@sentio/sdk/lib/utils/index.js +0 -14
  247. package/template/node_modules/@sentio/sdk/lib/utils/index.js.map +0 -1
  248. package/template/node_modules/@sentio/sdk/package.json +0 -78
  249. package/template/node_modules/@sentio/sdk/src/abis/ERC20.json +0 -174
  250. package/template/node_modules/@sentio/sdk/src/abis/ERC20Bytes.json +0 -236
  251. package/template/node_modules/@sentio/sdk/src/abis/WETH9.json +0 -153
  252. package/template/node_modules/@sentio/sdk/src/base-processor-template.ts +0 -105
  253. package/template/node_modules/@sentio/sdk/src/base-processor.ts +0 -172
  254. package/template/node_modules/@sentio/sdk/src/bind-options.ts +0 -41
  255. package/template/node_modules/@sentio/sdk/src/binds.ts +0 -73
  256. package/template/node_modules/@sentio/sdk/src/builtin/erc20/index.ts +0 -6
  257. package/template/node_modules/@sentio/sdk/src/builtin/erc20/test-utils.ts +0 -71
  258. package/template/node_modules/@sentio/sdk/src/builtin/erc20bytes/index.ts +0 -6
  259. package/template/node_modules/@sentio/sdk/src/builtin/erc20bytes/test-utils.ts +0 -53
  260. package/template/node_modules/@sentio/sdk/src/builtin/internal/ERC20.ts +0 -679
  261. package/template/node_modules/@sentio/sdk/src/builtin/internal/ERC20Bytes.ts +0 -384
  262. package/template/node_modules/@sentio/sdk/src/builtin/internal/WETH9.ts +0 -480
  263. package/template/node_modules/@sentio/sdk/src/builtin/internal/common.ts +0 -46
  264. package/template/node_modules/@sentio/sdk/src/builtin/internal/erc20_processor.ts +0 -762
  265. package/template/node_modules/@sentio/sdk/src/builtin/internal/erc20bytes_processor.ts +0 -531
  266. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/ERC20Bytes__factory.ts +0 -257
  267. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/ERC20__factory.ts +0 -404
  268. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/WETH9__factory.ts +0 -297
  269. package/template/node_modules/@sentio/sdk/src/builtin/internal/factories/index.ts +0 -6
  270. package/template/node_modules/@sentio/sdk/src/builtin/internal/index.ts +0 -10
  271. package/template/node_modules/@sentio/sdk/src/builtin/internal/weth9_processor.ts +0 -589
  272. package/template/node_modules/@sentio/sdk/src/builtin/weth9/index.ts +0 -6
  273. package/template/node_modules/@sentio/sdk/src/builtin/weth9/test-utils.ts +0 -89
  274. package/template/node_modules/@sentio/sdk/src/chain-config.ts +0 -6
  275. package/template/node_modules/@sentio/sdk/src/cli/build.ts +0 -196
  276. package/template/node_modules/@sentio/sdk/src/cli/cli.ts +0 -160
  277. package/template/node_modules/@sentio/sdk/src/cli/commands/run-create.ts +0 -36
  278. package/template/node_modules/@sentio/sdk/src/cli/commands/run-login.ts +0 -70
  279. package/template/node_modules/@sentio/sdk/src/cli/config.ts +0 -45
  280. package/template/node_modules/@sentio/sdk/src/cli/key.ts +0 -43
  281. package/template/node_modules/@sentio/sdk/src/cli/solana-code-gen.ts +0 -16
  282. package/template/node_modules/@sentio/sdk/src/cli/upload.ts +0 -88
  283. package/template/node_modules/@sentio/sdk/src/cli/webpack.config.js +0 -42
  284. package/template/node_modules/@sentio/sdk/src/context.ts +0 -103
  285. package/template/node_modules/@sentio/sdk/src/contract-namer.ts +0 -17
  286. package/template/node_modules/@sentio/sdk/src/error.ts +0 -45
  287. package/template/node_modules/@sentio/sdk/src/gen/builtin.ts +0 -22
  288. package/template/node_modules/@sentio/sdk/src/gen/google/protobuf/empty.ts +0 -70
  289. package/template/node_modules/@sentio/sdk/src/gen/processor/protos/processor.ts +0 -3626
  290. package/template/node_modules/@sentio/sdk/src/generic-processor.ts +0 -35
  291. package/template/node_modules/@sentio/sdk/src/index.ts +0 -21
  292. package/template/node_modules/@sentio/sdk/src/loader.ts +0 -24
  293. package/template/node_modules/@sentio/sdk/src/meter.test.ts +0 -16
  294. package/template/node_modules/@sentio/sdk/src/meter.ts +0 -140
  295. package/template/node_modules/@sentio/sdk/src/numberish.test.ts +0 -82
  296. package/template/node_modules/@sentio/sdk/src/numberish.ts +0 -100
  297. package/template/node_modules/@sentio/sdk/src/processor-runner.ts +0 -46
  298. package/template/node_modules/@sentio/sdk/src/processor-state.ts +0 -24
  299. package/template/node_modules/@sentio/sdk/src/promise-or-void.ts +0 -1
  300. package/template/node_modules/@sentio/sdk/src/provider.ts +0 -74
  301. package/template/node_modules/@sentio/sdk/src/service.ts +0 -491
  302. package/template/node_modules/@sentio/sdk/src/solana/builtin/index.ts +0 -2
  303. package/template/node_modules/@sentio/sdk/src/solana/builtin/spl-token-processor.ts +0 -164
  304. package/template/node_modules/@sentio/sdk/src/solana/builtin/types.ts +0 -268
  305. package/template/node_modules/@sentio/sdk/src/solana/builtin/wormhole-processor.ts +0 -178
  306. package/template/node_modules/@sentio/sdk/src/solana-processor.ts +0 -106
  307. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/codegen.ts +0 -315
  308. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/functions.ts +0 -68
  309. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/index.ts +0 -50
  310. package/template/node_modules/@sentio/sdk/src/target-ethers-sentio/tsconfig.json +0 -9
  311. package/template/node_modules/@sentio/sdk/src/test/abis/evm/CommitmentPool.json +0 -1034
  312. package/template/node_modules/@sentio/sdk/src/test/abis/evm/anyswapRouter.json +0 -490
  313. package/template/node_modules/@sentio/sdk/src/test/abis/solana/mirrorworld.json +0 -1392
  314. package/template/node_modules/@sentio/sdk/src/test/codegen.test.ts +0 -29
  315. package/template/node_modules/@sentio/sdk/src/test/erc20-template.test.ts +0 -37
  316. package/template/node_modules/@sentio/sdk/src/test/erc20-template.ts +0 -25
  317. package/template/node_modules/@sentio/sdk/src/test/erc20.test.ts +0 -117
  318. package/template/node_modules/@sentio/sdk/src/test/erc20.ts +0 -50
  319. package/template/node_modules/@sentio/sdk/src/test/generic-processor.test.ts +0 -70
  320. package/template/node_modules/@sentio/sdk/src/test/index.ts +0 -2
  321. package/template/node_modules/@sentio/sdk/src/test/metric-utils.ts +0 -49
  322. package/template/node_modules/@sentio/sdk/src/test/mirrorworld.ts +0 -40
  323. package/template/node_modules/@sentio/sdk/src/test/sentio.yaml +0 -4
  324. package/template/node_modules/@sentio/sdk/src/test/solana.test.ts +0 -93
  325. package/template/node_modules/@sentio/sdk/src/test/test-processor-server.ts +0 -258
  326. package/template/node_modules/@sentio/sdk/src/test/test-provider.ts +0 -25
  327. package/template/node_modules/@sentio/sdk/src/test/types/game_wallet.ts +0 -1392
  328. package/template/node_modules/@sentio/sdk/src/test/types/game_wallet_processor.ts +0 -113
  329. package/template/node_modules/@sentio/sdk/src/test/wormhole-token-bridge.ts +0 -21
  330. package/template/node_modules/@sentio/sdk/src/trace.ts +0 -86
  331. package/template/node_modules/@sentio/sdk/src/types/global.d.ts +0 -17
  332. package/template/node_modules/@sentio/sdk/src/utils/chainmap.ts +0 -95
  333. package/template/node_modules/@sentio/sdk/src/utils/convert.ts +0 -26
  334. package/template/node_modules/@sentio/sdk/src/utils/erc20.test.ts +0 -26
  335. package/template/node_modules/@sentio/sdk/src/utils/erc20.ts +0 -66
  336. package/template/node_modules/@sentio/sdk/src/utils/index.ts +0 -3
  337. package/template/node_modules/base-x/LICENSE.md +0 -22
  338. package/template/node_modules/base-x/README.md +0 -73
  339. package/template/node_modules/base-x/package.json +0 -46
  340. package/template/node_modules/base-x/src/index.d.ts +0 -9
  341. package/template/node_modules/base-x/src/index.js +0 -121
  342. package/template/node_modules/bs58/CHANGELOG.md +0 -65
  343. package/template/node_modules/bs58/LICENSE +0 -21
  344. package/template/node_modules/bs58/README.md +0 -91
  345. package/template/node_modules/bs58/index.d.ts +0 -5
  346. package/template/node_modules/bs58/index.js +0 -4
  347. package/template/node_modules/bs58/package.json +0 -39
  348. package/template/src/types/internal/X2y2.ts +0 -684
  349. package/template/src/types/internal/common.ts +0 -46
  350. package/template/src/types/internal/factories/X2y2__factory.ts +0 -436
  351. package/template/src/types/internal/factories/index.ts +0 -4
  352. package/template/src/types/internal/index.ts +0 -6
  353. package/template/src/types/internal/x2y2_processor.ts +0 -1004
  354. package/template/src/types/x2y2/index.ts +0 -6
  355. 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'"]}