@sentio/sdk 2.0.0-rc.2 → 2.0.0-rc.20

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 (595) hide show
  1. package/lib/aptos/api.d.ts +5 -0
  2. package/lib/aptos/api.js +21 -0
  3. package/lib/aptos/api.js.map +1 -0
  4. package/lib/aptos/aptos-plugin.d.ts +14 -0
  5. package/lib/aptos/aptos-plugin.js +146 -0
  6. package/lib/aptos/aptos-plugin.js.map +1 -0
  7. package/lib/aptos/aptos-processor.d.ts +72 -0
  8. package/lib/aptos/aptos-processor.js +201 -0
  9. package/lib/aptos/aptos-processor.js.map +1 -0
  10. package/lib/aptos/builtin/0x1.d.ts +1914 -0
  11. package/lib/aptos/builtin/0x1.js +2727 -0
  12. package/lib/aptos/builtin/0x1.js.map +1 -0
  13. package/lib/aptos/builtin/0x3.d.ts +491 -0
  14. package/lib/aptos/builtin/0x3.js +496 -0
  15. package/lib/aptos/builtin/0x3.js.map +1 -0
  16. package/lib/aptos/builtin/index.d.ts +2 -0
  17. package/lib/aptos/builtin/index.js +6 -0
  18. package/lib/aptos/builtin/index.js.map +1 -0
  19. package/lib/aptos/codegen/codegen.d.ts +21 -0
  20. package/lib/aptos/codegen/codegen.js +380 -0
  21. package/lib/aptos/codegen/codegen.js.map +1 -0
  22. package/lib/aptos/codegen/index.d.ts +1 -0
  23. package/lib/aptos/codegen/index.js +2 -0
  24. package/lib/aptos/codegen/index.js.map +1 -0
  25. package/lib/aptos/codegen/typegen.d.ts +18 -0
  26. package/lib/aptos/codegen/typegen.js +145 -0
  27. package/lib/aptos/codegen/typegen.js.map +1 -0
  28. package/lib/{core/generic-processor.test.d.ts → aptos/codegen/typegen.test.d.ts} +0 -0
  29. package/lib/aptos/codegen/typegen.test.js.map +1 -0
  30. package/lib/aptos/context.d.ts +21 -0
  31. package/lib/aptos/context.js +59 -0
  32. package/lib/aptos/context.js.map +1 -0
  33. package/lib/aptos/index.d.ts +9 -0
  34. package/lib/aptos/index.js +8 -0
  35. package/lib/aptos/index.js.map +1 -0
  36. package/lib/aptos/models.d.ts +27 -0
  37. package/lib/aptos/models.js +2 -0
  38. package/lib/aptos/models.js.map +1 -0
  39. package/lib/aptos/move-coder.d.ts +22 -0
  40. package/lib/aptos/move-coder.js +162 -0
  41. package/lib/aptos/move-coder.js.map +1 -0
  42. package/lib/aptos/move-types.d.ts +10 -0
  43. package/lib/aptos/move-types.js +2 -0
  44. package/lib/aptos/move-types.js.map +1 -0
  45. package/lib/aptos/network.d.ts +11 -0
  46. package/lib/aptos/network.js +27 -0
  47. package/lib/aptos/network.js.map +1 -0
  48. package/lib/aptos/run-codegen.d.ts +1 -0
  49. package/lib/aptos/run-codegen.js +12 -0
  50. package/lib/aptos/run-codegen.js.map +1 -0
  51. package/lib/aptos/tests/aptos.test.d.ts +1 -0
  52. package/lib/aptos/tests/aptos.test.js.map +1 -0
  53. package/lib/aptos/tests/souffl3.d.ts +1 -0
  54. package/lib/aptos/tests/souffl3.js +44 -0
  55. package/lib/aptos/tests/souffl3.js.map +1 -0
  56. package/lib/aptos/tests/types/index.d.ts +3 -0
  57. package/lib/aptos/tests/types/index.js +7 -0
  58. package/lib/aptos/tests/types/index.js.map +1 -0
  59. package/lib/aptos/tests/types/reserved.d.ts +345 -0
  60. package/lib/aptos/tests/types/reserved.js +301 -0
  61. package/lib/aptos/tests/types/reserved.js.map +1 -0
  62. package/lib/aptos/tests/types/soffl3.d.ts +812 -0
  63. package/lib/aptos/tests/types/soffl3.js +548 -0
  64. package/lib/aptos/tests/types/soffl3.js.map +1 -0
  65. package/lib/aptos/tests/types/souffle.d.ts +340 -0
  66. package/lib/aptos/tests/types/souffle.js +295 -0
  67. package/lib/aptos/tests/types/souffle.js.map +1 -0
  68. package/lib/aptos/types.d.ts +9 -0
  69. package/lib/aptos/types.js +130 -0
  70. package/lib/aptos/types.js.map +1 -0
  71. package/lib/aptos/types.test.d.ts +1 -0
  72. package/lib/aptos/types.test.js.map +1 -0
  73. package/lib/aptos/utils.d.ts +7 -0
  74. package/lib/aptos/utils.js +20 -0
  75. package/lib/aptos/utils.js.map +1 -0
  76. package/lib/core/base-context.d.ts +4 -4
  77. package/lib/core/base-context.js +7 -11
  78. package/lib/core/base-context.js.map +1 -1
  79. package/lib/core/big-decimal.d.ts +2 -0
  80. package/lib/core/big-decimal.js +11 -7
  81. package/lib/core/big-decimal.js.map +1 -1
  82. package/lib/{utils → core}/chain.d.ts +0 -0
  83. package/lib/{utils → core}/chain.js +7 -12
  84. package/lib/core/chain.js.map +1 -0
  85. package/lib/core/core-plugin.js +9 -13
  86. package/lib/core/core-plugin.js.map +1 -1
  87. package/lib/core/event-tracker.d.ts +2 -2
  88. package/lib/core/event-tracker.js +6 -13
  89. package/lib/core/event-tracker.js.map +1 -1
  90. package/lib/core/exporter.d.ts +2 -2
  91. package/lib/core/exporter.js +4 -9
  92. package/lib/core/exporter.js.map +1 -1
  93. package/lib/core/index.d.ts +10 -9
  94. package/lib/core/index.js +10 -32
  95. package/lib/core/index.js.map +1 -1
  96. package/lib/core/logger.d.ts +2 -2
  97. package/lib/core/logger.js +7 -11
  98. package/lib/core/logger.js.map +1 -1
  99. package/lib/core/metadata.d.ts +4 -0
  100. package/lib/core/metadata.js +21 -7
  101. package/lib/core/metadata.js.map +1 -1
  102. package/lib/core/meter.d.ts +3 -7
  103. package/lib/core/meter.js +22 -57
  104. package/lib/core/meter.js.map +1 -1
  105. package/lib/core/meter.test.js.map +1 -1
  106. package/lib/core/numberish.d.ts +1 -3
  107. package/lib/core/numberish.js +11 -26
  108. package/lib/core/numberish.js.map +1 -1
  109. package/lib/core/numberish.test.js.map +1 -1
  110. package/lib/core/sui-plugin.js +12 -16
  111. package/lib/core/sui-plugin.js.map +1 -1
  112. package/lib/core/sui-processor.d.ts +1 -1
  113. package/lib/core/sui-processor.js +6 -12
  114. package/lib/core/sui-processor.js.map +1 -1
  115. package/lib/eth/account-processor-state.d.ts +1 -1
  116. package/lib/eth/account-processor-state.js +2 -6
  117. package/lib/eth/account-processor-state.js.map +1 -1
  118. package/lib/eth/account-processor.d.ts +7 -7
  119. package/lib/eth/account-processor.js +23 -27
  120. package/lib/eth/account-processor.js.map +1 -1
  121. package/lib/eth/base-processor-template.d.ts +9 -8
  122. package/lib/eth/base-processor-template.js +8 -14
  123. package/lib/eth/base-processor-template.js.map +1 -1
  124. package/lib/eth/base-processor.d.ts +8 -7
  125. package/lib/eth/base-processor.js +21 -27
  126. package/lib/eth/base-processor.js.map +1 -1
  127. package/lib/{core → eth}/bind-options.d.ts +0 -0
  128. package/lib/eth/bind-options.js +40 -0
  129. package/lib/eth/bind-options.js.map +1 -0
  130. package/lib/eth/binds.d.ts +3 -3
  131. package/lib/eth/binds.js +11 -19
  132. package/lib/eth/binds.js.map +1 -1
  133. package/lib/eth/builtin/eacaggregatorproxy/index.d.ts +3 -0
  134. package/lib/eth/builtin/eacaggregatorproxy/index.js +7 -0
  135. package/lib/eth/builtin/eacaggregatorproxy/index.js.map +1 -0
  136. package/lib/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.d.ts +1 -1
  137. package/lib/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.js +9 -16
  138. package/lib/eth/builtin/eacaggregatorproxy/test-utils.js.map +1 -0
  139. package/lib/eth/builtin/erc1155/index.d.ts +3 -0
  140. package/lib/eth/builtin/erc1155/index.js +7 -0
  141. package/lib/eth/builtin/erc1155/index.js.map +1 -0
  142. package/lib/{builtin → eth/builtin}/erc1155/test-utils.d.ts +1 -1
  143. package/lib/{builtin → eth/builtin}/erc1155/test-utils.js +9 -16
  144. package/lib/eth/builtin/erc1155/test-utils.js.map +1 -0
  145. package/lib/eth/builtin/erc20/index.d.ts +3 -0
  146. package/lib/eth/builtin/erc20/index.js +7 -0
  147. package/lib/eth/builtin/erc20/index.js.map +1 -0
  148. package/lib/{builtin → eth/builtin}/erc20/test-utils.d.ts +1 -1
  149. package/lib/{builtin → eth/builtin}/erc20/test-utils.js +7 -13
  150. package/lib/eth/builtin/erc20/test-utils.js.map +1 -0
  151. package/lib/eth/builtin/erc20bytes/index.d.ts +3 -0
  152. package/lib/eth/builtin/erc20bytes/index.js +7 -0
  153. package/lib/eth/builtin/erc20bytes/index.js.map +1 -0
  154. package/lib/{builtin → eth/builtin}/erc20bytes/test-utils.d.ts +1 -1
  155. package/lib/{builtin → eth/builtin}/erc20bytes/test-utils.js +5 -10
  156. package/lib/eth/builtin/erc20bytes/test-utils.js.map +1 -0
  157. package/lib/eth/builtin/erc721/index.d.ts +3 -0
  158. package/lib/eth/builtin/erc721/index.js +7 -0
  159. package/lib/eth/builtin/erc721/index.js.map +1 -0
  160. package/lib/{builtin → eth/builtin}/erc721/test-utils.d.ts +1 -1
  161. package/lib/{builtin → eth/builtin}/erc721/test-utils.js +7 -13
  162. package/lib/eth/builtin/erc721/test-utils.js.map +1 -0
  163. package/lib/eth/builtin/index.d.ts +8 -0
  164. package/lib/eth/builtin/index.js +9 -0
  165. package/lib/eth/builtin/index.js.map +1 -0
  166. package/lib/{builtin → eth/builtin}/internal/EACAggregatorProxy.d.ts +6 -6
  167. package/lib/eth/builtin/internal/EACAggregatorProxy.js +2 -0
  168. package/lib/eth/builtin/internal/EACAggregatorProxy.js.map +1 -0
  169. package/lib/{builtin → eth/builtin}/internal/ERC1155.d.ts +6 -6
  170. package/lib/eth/builtin/internal/ERC1155.js +2 -0
  171. package/lib/eth/builtin/internal/ERC1155.js.map +1 -0
  172. package/lib/{builtin → eth/builtin}/internal/ERC20.d.ts +5 -5
  173. package/lib/eth/builtin/internal/ERC20.js +2 -0
  174. package/lib/eth/builtin/internal/ERC20.js.map +1 -0
  175. package/lib/{builtin → eth/builtin}/internal/ERC20Bytes.d.ts +4 -4
  176. package/lib/eth/builtin/internal/ERC20Bytes.js +2 -0
  177. package/lib/eth/builtin/internal/ERC20Bytes.js.map +1 -0
  178. package/lib/{builtin → eth/builtin}/internal/ERC721.d.ts +5 -5
  179. package/lib/eth/builtin/internal/ERC721.js +2 -0
  180. package/lib/eth/builtin/internal/ERC721.js.map +1 -0
  181. package/lib/{builtin → eth/builtin}/internal/WETH9.d.ts +6 -6
  182. package/lib/eth/builtin/internal/WETH9.js +2 -0
  183. package/lib/eth/builtin/internal/WETH9.js.map +1 -0
  184. package/lib/{builtin → eth/builtin}/internal/common.d.ts +4 -2
  185. package/lib/{builtin → eth/builtin}/internal/common.js +1 -2
  186. package/lib/eth/builtin/internal/common.js.map +1 -0
  187. package/lib/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.d.ts +3 -3
  188. package/lib/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.js +123 -221
  189. package/lib/eth/builtin/internal/eacaggregatorproxy_processor.js.map +1 -0
  190. package/lib/{builtin → eth/builtin}/internal/erc1155_processor.d.ts +3 -3
  191. package/lib/{builtin → eth/builtin}/internal/erc1155_processor.js +45 -78
  192. package/lib/eth/builtin/internal/erc1155_processor.js.map +1 -0
  193. package/lib/{builtin → eth/builtin}/internal/erc20_processor.d.ts +3 -3
  194. package/lib/{builtin → eth/builtin}/internal/erc20_processor.js +63 -111
  195. package/lib/eth/builtin/internal/erc20_processor.js.map +1 -0
  196. package/lib/{builtin → eth/builtin}/internal/erc20bytes_processor.d.ts +3 -3
  197. package/lib/{builtin → eth/builtin}/internal/erc20bytes_processor.js +51 -89
  198. package/lib/eth/builtin/internal/erc20bytes_processor.js.map +1 -0
  199. package/lib/{builtin → eth/builtin}/internal/erc721_processor.d.ts +3 -3
  200. package/lib/{builtin → eth/builtin}/internal/erc721_processor.js +69 -122
  201. package/lib/eth/builtin/internal/erc721_processor.js.map +1 -0
  202. package/lib/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.d.ts +1 -1
  203. package/lib/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.js +4 -8
  204. package/lib/eth/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -0
  205. package/lib/{builtin → eth/builtin}/internal/factories/ERC1155__factory.d.ts +1 -1
  206. package/lib/{builtin → eth/builtin}/internal/factories/ERC1155__factory.js +4 -8
  207. package/lib/eth/builtin/internal/factories/ERC1155__factory.js.map +1 -0
  208. package/lib/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.d.ts +1 -1
  209. package/lib/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.js +4 -8
  210. package/lib/eth/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -0
  211. package/lib/{builtin → eth/builtin}/internal/factories/ERC20__factory.d.ts +1 -1
  212. package/lib/{builtin → eth/builtin}/internal/factories/ERC20__factory.js +4 -8
  213. package/lib/eth/builtin/internal/factories/ERC20__factory.js.map +1 -0
  214. package/lib/{builtin → eth/builtin}/internal/factories/ERC721__factory.d.ts +1 -1
  215. package/lib/{builtin → eth/builtin}/internal/factories/ERC721__factory.js +4 -8
  216. package/lib/eth/builtin/internal/factories/ERC721__factory.js.map +1 -0
  217. package/lib/{builtin → eth/builtin}/internal/factories/WETH9__factory.d.ts +1 -1
  218. package/lib/{builtin → eth/builtin}/internal/factories/WETH9__factory.js +4 -8
  219. package/lib/eth/builtin/internal/factories/WETH9__factory.js.map +1 -0
  220. package/lib/eth/builtin/internal/factories/index.d.ts +6 -0
  221. package/lib/eth/builtin/internal/factories/index.js +10 -0
  222. package/lib/eth/builtin/internal/factories/index.js.map +1 -0
  223. package/lib/eth/builtin/internal/index.d.ts +13 -0
  224. package/lib/eth/builtin/internal/index.js +8 -0
  225. package/lib/eth/builtin/internal/index.js.map +1 -0
  226. package/lib/{builtin → eth/builtin}/internal/weth9_processor.d.ts +3 -3
  227. package/lib/{builtin → eth/builtin}/internal/weth9_processor.js +51 -89
  228. package/lib/eth/builtin/internal/weth9_processor.js.map +1 -0
  229. package/lib/eth/builtin/weth9/index.d.ts +3 -0
  230. package/lib/eth/builtin/weth9/index.js +7 -0
  231. package/lib/eth/builtin/weth9/index.js.map +1 -0
  232. package/lib/{builtin → eth/builtin}/weth9/test-utils.d.ts +1 -1
  233. package/lib/{builtin → eth/builtin}/weth9/test-utils.js +9 -16
  234. package/lib/eth/builtin/weth9/test-utils.js.map +1 -0
  235. package/lib/eth/codegen/codegen.d.ts +1 -0
  236. package/lib/eth/codegen/codegen.js +53 -0
  237. package/lib/eth/codegen/codegen.js.map +1 -0
  238. package/lib/{target-ethers-sentio/index.d.ts → eth/codegen/ethers-sentio.d.ts} +1 -1
  239. package/lib/eth/codegen/ethers-sentio.js +57 -0
  240. package/lib/eth/codegen/ethers-sentio.js.map +1 -0
  241. package/lib/{target-ethers-sentio → eth/codegen}/event-handler.d.ts +0 -0
  242. package/lib/eth/codegen/event-handler.js +46 -0
  243. package/lib/eth/codegen/event-handler.js.map +1 -0
  244. package/lib/{target-ethers-sentio → eth/codegen}/file.d.ts +0 -0
  245. package/lib/{target-ethers-sentio → eth/codegen}/file.js +33 -39
  246. package/lib/eth/codegen/file.js.map +1 -0
  247. package/lib/{target-ethers-sentio → eth/codegen}/functions-handler.d.ts +0 -0
  248. package/lib/{target-ethers-sentio → eth/codegen}/functions-handler.js +12 -18
  249. package/lib/eth/codegen/functions-handler.js.map +1 -0
  250. package/lib/eth/codegen/index.d.ts +1 -0
  251. package/lib/eth/codegen/index.js +2 -0
  252. package/lib/eth/codegen/index.js.map +1 -0
  253. package/lib/{target-ethers-sentio → eth/codegen}/types.d.ts +0 -0
  254. package/lib/{target-ethers-sentio → eth/codegen}/types.js +3 -9
  255. package/lib/eth/codegen/types.js.map +1 -0
  256. package/lib/{target-ethers-sentio → eth/codegen}/view-function.d.ts +0 -0
  257. package/lib/eth/codegen/view-function.js +62 -0
  258. package/lib/eth/codegen/view-function.js.map +1 -0
  259. package/lib/{core → eth}/context.d.ts +5 -5
  260. package/lib/{core → eth}/context.js +14 -23
  261. package/lib/eth/context.js.map +1 -0
  262. package/lib/eth/error.d.ts +1 -0
  263. package/lib/eth/error.js +3 -0
  264. package/lib/eth/error.js.map +1 -0
  265. package/lib/eth/eth-plugin.js +30 -34
  266. package/lib/eth/eth-plugin.js.map +1 -1
  267. package/lib/eth/eth.d.ts +13 -0
  268. package/lib/eth/eth.js +44 -0
  269. package/lib/eth/eth.js.map +1 -0
  270. package/lib/eth/generic-processor.d.ts +3 -3
  271. package/lib/eth/generic-processor.js +9 -13
  272. package/lib/eth/generic-processor.js.map +1 -1
  273. package/lib/eth/generic-processor.test.d.ts +1 -0
  274. package/lib/eth/generic-processor.test.js.map +1 -0
  275. package/lib/eth/index.d.ts +11 -6
  276. package/lib/eth/index.js +10 -14
  277. package/lib/eth/index.js.map +1 -1
  278. package/lib/eth/provider.js +13 -17
  279. package/lib/eth/provider.js.map +1 -1
  280. package/lib/eth/run-codegen.d.ts +2 -0
  281. package/lib/eth/run-codegen.js +12 -0
  282. package/lib/eth/run-codegen.js.map +1 -0
  283. package/lib/eth/trace.js +1 -2
  284. package/lib/eth/trace.js.map +1 -1
  285. package/lib/index.d.ts +2 -5
  286. package/lib/index.js +3 -18
  287. package/lib/index.js.map +1 -1
  288. package/lib/jest.config.d.ts +9 -0
  289. package/lib/jest.config.js +9 -0
  290. package/lib/jest.config.js.map +1 -0
  291. package/lib/promise-or-void.js +1 -2
  292. package/lib/solana/builtin/index.d.ts +1 -0
  293. package/lib/solana/builtin/index.js +2 -0
  294. package/lib/solana/builtin/index.js.map +1 -0
  295. package/lib/solana/builtin/spl-token-processor.d.ts +39 -0
  296. package/lib/solana/builtin/spl-token-processor.js +254 -0
  297. package/lib/solana/builtin/spl-token-processor.js.map +1 -0
  298. package/lib/solana/builtin/types.d.ts +427 -0
  299. package/lib/solana/builtin/types.js +200 -0
  300. package/lib/solana/builtin/types.js.map +1 -0
  301. package/lib/solana/codegen/codegen.d.ts +1 -0
  302. package/lib/solana/codegen/codegen.js +122 -0
  303. package/lib/solana/codegen/codegen.js.map +1 -0
  304. package/lib/solana/codegen/index.d.ts +1 -0
  305. package/lib/solana/codegen/index.js +2 -0
  306. package/lib/solana/codegen/index.js.map +1 -0
  307. package/lib/solana/index.d.ts +4 -0
  308. package/lib/solana/index.js +5 -0
  309. package/lib/solana/index.js.map +1 -0
  310. package/lib/solana/run-codegen.d.ts +2 -0
  311. package/lib/solana/run-codegen.js +12 -0
  312. package/lib/solana/run-codegen.js.map +1 -0
  313. package/lib/solana/solana-context.d.ts +9 -0
  314. package/lib/solana/solana-context.js +28 -0
  315. package/lib/solana/solana-context.js.map +1 -0
  316. package/lib/solana/solana-options.d.ts +10 -0
  317. package/lib/solana/solana-options.js +10 -0
  318. package/lib/solana/solana-options.js.map +1 -0
  319. package/lib/solana/solana-plugin.d.ts +9 -0
  320. package/lib/solana/solana-plugin.js +87 -0
  321. package/lib/solana/solana-plugin.js.map +1 -0
  322. package/lib/solana/solana-processor.d.ts +43 -0
  323. package/lib/solana/solana-processor.js +72 -0
  324. package/lib/solana/solana-processor.js.map +1 -0
  325. package/lib/solana/tests/solana.test.d.ts +1 -0
  326. package/lib/solana/tests/solana.test.js.map +1 -0
  327. package/lib/solana/tests/types/basic_1.d.ts +26 -0
  328. package/lib/solana/tests/types/basic_1.js +63 -0
  329. package/lib/solana/tests/types/basic_1.js.map +1 -0
  330. package/lib/solana/tests/types/basic_1_processor.d.ts +21 -0
  331. package/lib/solana/tests/types/basic_1_processor.js +35 -0
  332. package/lib/solana/tests/types/basic_1_processor.js.map +1 -0
  333. package/lib/solana/tests/types/token_bridge.d.ts +29 -0
  334. package/lib/solana/tests/types/token_bridge.js +938 -0
  335. package/lib/solana/tests/types/token_bridge.js.map +1 -0
  336. package/lib/solana/tests/types/token_bridge_processor.d.ts +212 -0
  337. package/lib/solana/tests/types/token_bridge_processor.js +134 -0
  338. package/lib/solana/tests/types/token_bridge_processor.js.map +1 -0
  339. package/lib/solana/tests/wormhole-token-bridge.d.ts +15 -0
  340. package/lib/solana/tests/wormhole-token-bridge.js +79 -0
  341. package/lib/solana/tests/wormhole-token-bridge.js.map +1 -0
  342. package/lib/testing/index.d.ts +3 -2
  343. package/lib/testing/index.js +3 -10
  344. package/lib/testing/index.js.map +1 -1
  345. package/lib/testing/metric-utils.d.ts +1 -1
  346. package/lib/testing/metric-utils.js +7 -13
  347. package/lib/testing/metric-utils.js.map +1 -1
  348. package/lib/testing/test-processor-server.d.ts +3 -4
  349. package/lib/testing/test-processor-server.js +24 -29
  350. package/lib/testing/test-processor-server.js.map +1 -1
  351. package/lib/testing/test-provider.js +5 -9
  352. package/lib/testing/test-provider.js.map +1 -1
  353. package/lib/tsup.config.ts +31 -0
  354. package/lib/utils/conversion.d.ts +0 -5
  355. package/lib/utils/conversion.js +22 -27
  356. package/lib/utils/conversion.js.map +1 -1
  357. package/lib/utils/dex-price.js +14 -19
  358. package/lib/utils/dex-price.js.map +1 -1
  359. package/lib/utils/dex-price.test.js.map +1 -1
  360. package/lib/utils/erc20.test.js.map +1 -1
  361. package/lib/utils/index.d.ts +3 -4
  362. package/lib/utils/index.js +3 -8
  363. package/lib/utils/index.js.map +1 -1
  364. package/lib/utils/price.d.ts +11 -11
  365. package/lib/utils/price.js +10 -16
  366. package/lib/utils/price.js.map +1 -1
  367. package/lib/utils/token.d.ts +1 -2
  368. package/lib/utils/token.js +23 -40
  369. package/lib/utils/token.js.map +1 -1
  370. package/package.json +51 -23
  371. package/src/aptos/abis/0x1.json +9205 -0
  372. package/src/aptos/abis/0x3.json +1515 -0
  373. package/src/aptos/api.ts +23 -0
  374. package/src/aptos/aptos-plugin.ts +183 -0
  375. package/src/aptos/aptos-processor.ts +331 -0
  376. package/src/aptos/builtin/0x1.ts +4685 -0
  377. package/src/aptos/builtin/0x3.ts +1010 -0
  378. package/src/{builtin/weth9 → aptos/builtin}/index.ts +2 -3
  379. package/src/aptos/codegen/codegen.ts +457 -0
  380. package/src/aptos/codegen/index.ts +1 -0
  381. package/src/aptos/codegen/tsconfig.json +8 -0
  382. package/src/aptos/codegen/typegen.ts +165 -0
  383. package/src/aptos/context.ts +72 -0
  384. package/src/aptos/index.ts +10 -0
  385. package/src/aptos/models.ts +35 -0
  386. package/src/aptos/move-coder.ts +199 -0
  387. package/src/aptos/move-types.ts +11 -0
  388. package/src/aptos/network.ts +29 -0
  389. package/src/aptos/run-codegen.ts +13 -0
  390. package/src/aptos/tests/abis/reserved.json +402 -0
  391. package/src/aptos/tests/abis/soffl3.json +1411 -0
  392. package/src/aptos/tests/abis/souffle.json +389 -0
  393. package/src/aptos/tests/souffl3.ts +57 -0
  394. package/src/aptos/tests/types/index.ts +6 -0
  395. package/src/aptos/tests/types/reserved.ts +781 -0
  396. package/src/aptos/tests/types/soffl3.ts +1567 -0
  397. package/src/aptos/tests/types/souffle.ts +780 -0
  398. package/src/aptos/types.ts +149 -0
  399. package/src/aptos/utils.ts +26 -0
  400. package/src/core/base-context.ts +4 -4
  401. package/src/core/big-decimal.ts +11 -0
  402. package/src/{utils → core}/chain.ts +0 -0
  403. package/src/core/core-plugin.ts +3 -3
  404. package/src/core/event-tracker.ts +2 -2
  405. package/src/core/exporter.ts +3 -3
  406. package/src/core/index.ts +10 -10
  407. package/src/core/logger.ts +2 -2
  408. package/src/core/metadata.ts +23 -2
  409. package/src/core/meter.ts +3 -26
  410. package/src/core/numberish.ts +1 -12
  411. package/src/core/sui-plugin.ts +2 -2
  412. package/src/core/sui-processor.ts +1 -1
  413. package/src/{abis → eth/abis}/EACAggregatorProxy.json +0 -0
  414. package/src/{abis → eth/abis}/ERC1155.json +0 -0
  415. package/src/{abis → eth/abis}/ERC20.json +0 -0
  416. package/src/{abis → eth/abis}/ERC20Bytes.json +0 -0
  417. package/src/{abis → eth/abis}/ERC721.json +0 -0
  418. package/src/{abis → eth/abis}/WETH9.json +0 -0
  419. package/src/eth/account-processor-state.ts +1 -1
  420. package/src/eth/account-processor.ts +11 -11
  421. package/src/eth/base-processor-template.ts +8 -7
  422. package/src/eth/base-processor.ts +12 -22
  423. package/src/{core → eth}/bind-options.ts +0 -0
  424. package/src/eth/binds.ts +3 -3
  425. package/src/eth/builtin/eacaggregatorproxy/index.ts +7 -0
  426. package/src/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.ts +1 -1
  427. package/src/eth/builtin/erc1155/index.ts +7 -0
  428. package/src/{builtin → eth/builtin}/erc1155/test-utils.ts +1 -1
  429. package/src/eth/builtin/erc20/index.ts +7 -0
  430. package/src/{builtin → eth/builtin}/erc20/test-utils.ts +1 -1
  431. package/src/eth/builtin/erc20bytes/index.ts +7 -0
  432. package/src/{builtin → eth/builtin}/erc20bytes/test-utils.ts +1 -1
  433. package/src/eth/builtin/erc721/index.ts +7 -0
  434. package/src/{builtin → eth/builtin}/erc721/test-utils.ts +1 -1
  435. package/src/eth/builtin/index.ts +8 -0
  436. package/src/{builtin → eth/builtin}/internal/EACAggregatorProxy.ts +6 -10
  437. package/src/{builtin → eth/builtin}/internal/ERC1155.ts +6 -10
  438. package/src/{builtin → eth/builtin}/internal/ERC20.ts +5 -8
  439. package/src/{builtin → eth/builtin}/internal/ERC20Bytes.ts +4 -6
  440. package/src/{builtin → eth/builtin}/internal/ERC721.ts +5 -8
  441. package/src/{builtin → eth/builtin}/internal/WETH9.ts +6 -10
  442. package/src/eth/builtin/internal/common.ts +22 -0
  443. package/src/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.ts +93 -165
  444. package/src/{builtin → eth/builtin}/internal/erc1155_processor.ts +28 -52
  445. package/src/{builtin → eth/builtin}/internal/erc20_processor.ts +43 -75
  446. package/src/{builtin → eth/builtin}/internal/erc20bytes_processor.ts +33 -57
  447. package/src/{builtin → eth/builtin}/internal/erc721_processor.ts +48 -84
  448. package/src/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.ts +1 -1
  449. package/src/{builtin → eth/builtin}/internal/factories/ERC1155__factory.ts +1 -1
  450. package/src/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.ts +1 -1
  451. package/src/{builtin → eth/builtin}/internal/factories/ERC20__factory.ts +1 -1
  452. package/src/{builtin → eth/builtin}/internal/factories/ERC721__factory.ts +1 -1
  453. package/src/{builtin → eth/builtin}/internal/factories/WETH9__factory.ts +1 -1
  454. package/src/eth/builtin/internal/factories/index.ts +9 -0
  455. package/src/eth/builtin/internal/index.ts +16 -0
  456. package/src/{builtin → eth/builtin}/internal/weth9_processor.ts +33 -57
  457. package/src/eth/builtin/weth9/index.ts +7 -0
  458. package/src/{builtin → eth/builtin}/weth9/test-utils.ts +1 -1
  459. package/src/eth/codegen/codegen.ts +62 -0
  460. package/src/{target-ethers-sentio/index.ts → eth/codegen/ethers-sentio.ts} +5 -2
  461. package/src/{target-ethers-sentio → eth/codegen}/event-handler.ts +2 -2
  462. package/src/{target-ethers-sentio → eth/codegen}/file.ts +13 -12
  463. package/src/{target-ethers-sentio → eth/codegen}/functions-handler.ts +4 -5
  464. package/src/eth/codegen/index.ts +1 -0
  465. package/src/eth/codegen/tsconfig.json +8 -0
  466. package/src/{target-ethers-sentio → eth/codegen}/types.ts +1 -1
  467. package/src/{target-ethers-sentio → eth/codegen}/view-function.ts +7 -12
  468. package/src/{core → eth}/context.ts +5 -6
  469. package/src/eth/error.ts +4 -0
  470. package/src/eth/eth-plugin.ts +3 -3
  471. package/src/eth/eth.ts +56 -0
  472. package/src/eth/generic-processor.ts +5 -5
  473. package/src/eth/index.ts +12 -6
  474. package/src/eth/provider.ts +4 -3
  475. package/src/eth/run-codegen.ts +12 -0
  476. package/src/index.ts +2 -9
  477. package/src/jest.config.ts +8 -0
  478. package/src/solana/builtin/index.ts +1 -0
  479. package/src/solana/builtin/spl-token-processor.ts +298 -0
  480. package/src/solana/builtin/types.ts +279 -0
  481. package/src/solana/codegen/codegen.ts +140 -0
  482. package/src/solana/codegen/index.ts +1 -0
  483. package/src/solana/codegen/tsconfig.json +8 -0
  484. package/src/solana/index.ts +4 -0
  485. package/src/solana/run-codegen.ts +13 -0
  486. package/src/solana/solana-context.ts +30 -0
  487. package/src/solana/solana-options.ts +11 -0
  488. package/src/solana/solana-plugin.ts +103 -0
  489. package/src/solana/solana-processor.ts +102 -0
  490. package/src/solana/tests/abis/basic_1.json +62 -0
  491. package/src/solana/tests/abis/token_bridge.json +937 -0
  492. package/src/solana/tests/types/basic_1.ts +62 -0
  493. package/src/solana/tests/types/basic_1_processor.ts +42 -0
  494. package/src/solana/tests/types/token_bridge.ts +937 -0
  495. package/src/solana/tests/types/token_bridge_processor.ts +150 -0
  496. package/src/solana/tests/wormhole-token-bridge.ts +96 -0
  497. package/src/testing/index.ts +3 -3
  498. package/src/testing/metric-utils.ts +2 -2
  499. package/src/testing/test-processor-server.ts +5 -5
  500. package/src/testing/test-provider.ts +1 -1
  501. package/src/tsup.config.ts +31 -0
  502. package/src/utils/conversion.ts +21 -25
  503. package/src/utils/dex-price.ts +4 -5
  504. package/src/utils/index.ts +3 -4
  505. package/src/utils/price.ts +1 -1
  506. package/src/utils/token.ts +20 -31
  507. package/lib/builtin/eacaggregatorproxy/index.d.ts +0 -2
  508. package/lib/builtin/eacaggregatorproxy/index.js +0 -9
  509. package/lib/builtin/eacaggregatorproxy/index.js.map +0 -1
  510. package/lib/builtin/eacaggregatorproxy/test-utils.js.map +0 -1
  511. package/lib/builtin/erc1155/index.d.ts +0 -2
  512. package/lib/builtin/erc1155/index.js +0 -9
  513. package/lib/builtin/erc1155/index.js.map +0 -1
  514. package/lib/builtin/erc1155/test-utils.js.map +0 -1
  515. package/lib/builtin/erc20/index.d.ts +0 -2
  516. package/lib/builtin/erc20/index.js +0 -9
  517. package/lib/builtin/erc20/index.js.map +0 -1
  518. package/lib/builtin/erc20/test-utils.js.map +0 -1
  519. package/lib/builtin/erc20bytes/index.d.ts +0 -2
  520. package/lib/builtin/erc20bytes/index.js +0 -9
  521. package/lib/builtin/erc20bytes/index.js.map +0 -1
  522. package/lib/builtin/erc20bytes/test-utils.js.map +0 -1
  523. package/lib/builtin/erc721/index.d.ts +0 -2
  524. package/lib/builtin/erc721/index.js +0 -9
  525. package/lib/builtin/erc721/index.js.map +0 -1
  526. package/lib/builtin/erc721/test-utils.js.map +0 -1
  527. package/lib/builtin/index.d.ts +0 -4
  528. package/lib/builtin/index.js +0 -9
  529. package/lib/builtin/index.js.map +0 -1
  530. package/lib/builtin/internal/EACAggregatorProxy.js +0 -3
  531. package/lib/builtin/internal/EACAggregatorProxy.js.map +0 -1
  532. package/lib/builtin/internal/ERC1155.js +0 -3
  533. package/lib/builtin/internal/ERC1155.js.map +0 -1
  534. package/lib/builtin/internal/ERC20.js +0 -3
  535. package/lib/builtin/internal/ERC20.js.map +0 -1
  536. package/lib/builtin/internal/ERC20Bytes.js +0 -3
  537. package/lib/builtin/internal/ERC20Bytes.js.map +0 -1
  538. package/lib/builtin/internal/ERC721.js +0 -3
  539. package/lib/builtin/internal/ERC721.js.map +0 -1
  540. package/lib/builtin/internal/WETH9.js +0 -3
  541. package/lib/builtin/internal/WETH9.js.map +0 -1
  542. package/lib/builtin/internal/common.js.map +0 -1
  543. package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +0 -1
  544. package/lib/builtin/internal/erc1155_processor.js.map +0 -1
  545. package/lib/builtin/internal/erc20_processor.js.map +0 -1
  546. package/lib/builtin/internal/erc20bytes_processor.js.map +0 -1
  547. package/lib/builtin/internal/erc721_processor.js.map +0 -1
  548. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +0 -1
  549. package/lib/builtin/internal/factories/ERC1155__factory.js.map +0 -1
  550. package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +0 -1
  551. package/lib/builtin/internal/factories/ERC20__factory.js.map +0 -1
  552. package/lib/builtin/internal/factories/ERC721__factory.js.map +0 -1
  553. package/lib/builtin/internal/factories/WETH9__factory.js.map +0 -1
  554. package/lib/builtin/internal/factories/index.d.ts +0 -6
  555. package/lib/builtin/internal/factories/index.js +0 -19
  556. package/lib/builtin/internal/factories/index.js.map +0 -1
  557. package/lib/builtin/internal/index.d.ts +0 -13
  558. package/lib/builtin/internal/index.js +0 -18
  559. package/lib/builtin/internal/index.js.map +0 -1
  560. package/lib/builtin/internal/weth9_processor.js.map +0 -1
  561. package/lib/builtin/weth9/index.d.ts +0 -2
  562. package/lib/builtin/weth9/index.js +0 -9
  563. package/lib/builtin/weth9/index.js.map +0 -1
  564. package/lib/builtin/weth9/test-utils.js.map +0 -1
  565. package/lib/core/bind-options.js +0 -47
  566. package/lib/core/bind-options.js.map +0 -1
  567. package/lib/core/context.js.map +0 -1
  568. package/lib/core/generic-processor.test.js.map +0 -1
  569. package/lib/error.d.ts +0 -7
  570. package/lib/error.js +0 -43
  571. package/lib/error.js.map +0 -1
  572. package/lib/target-ethers-sentio/event-handler.js +0 -52
  573. package/lib/target-ethers-sentio/event-handler.js.map +0 -1
  574. package/lib/target-ethers-sentio/file.js.map +0 -1
  575. package/lib/target-ethers-sentio/functions-handler.js.map +0 -1
  576. package/lib/target-ethers-sentio/index.js +0 -58
  577. package/lib/target-ethers-sentio/index.js.map +0 -1
  578. package/lib/target-ethers-sentio/types.js.map +0 -1
  579. package/lib/target-ethers-sentio/view-function.js +0 -74
  580. package/lib/target-ethers-sentio/view-function.js.map +0 -1
  581. package/lib/utils/chain.js.map +0 -1
  582. package/lib/webpack.config.js +0 -50
  583. package/src/builtin/eacaggregatorproxy/index.ts +0 -6
  584. package/src/builtin/erc1155/index.ts +0 -6
  585. package/src/builtin/erc20/index.ts +0 -6
  586. package/src/builtin/erc20bytes/index.ts +0 -6
  587. package/src/builtin/erc721/index.ts +0 -6
  588. package/src/builtin/index.ts +0 -4
  589. package/src/builtin/internal/common.ts +0 -46
  590. package/src/builtin/internal/factories/index.ts +0 -9
  591. package/src/builtin/internal/index.ts +0 -16
  592. package/src/error.ts +0 -45
  593. package/src/target-ethers-sentio/.eslintrc.json +0 -14
  594. package/src/target-ethers-sentio/tsconfig.json +0 -9
  595. package/src/webpack.config.js +0 -50
package/lib/core/meter.js CHANGED
@@ -1,69 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Meter = exports.GaugeBinding = exports.Gauge = exports.CounterBinding = exports.Counter = exports.MetricState = exports.Metric = exports.CounterOptions = exports.MetricOptions = exports.normalizeLabels = exports.normalizeValue = exports.normalizeKey = exports.normalizeName = void 0;
4
- const numberish_1 = require("./numberish");
5
- const metadata_1 = require("./metadata");
6
- const protos_1 = require("@sentio/protos");
7
- const runtime_1 = require("@sentio/runtime");
8
- function normalizeName(name) {
9
- return name.slice(0, 100).replace(/[^_\-a-zA-Z0-9]/g, '_');
10
- }
11
- exports.normalizeName = normalizeName;
12
- function normalizeKey(name) {
13
- if (name === 'labels') {
14
- return 'labels_';
15
- }
16
- return normalizeName(name);
17
- }
18
- exports.normalizeKey = normalizeKey;
19
- function normalizeValue(name) {
20
- return name.slice(0, 100);
21
- }
22
- exports.normalizeValue = normalizeValue;
23
- function normalizeLabels(labels) {
24
- const normLabels = {};
25
- for (const key in labels) {
26
- normLabels[normalizeKey(key)] = normalizeValue(labels[key]);
27
- }
28
- return normLabels;
29
- }
30
- exports.normalizeLabels = normalizeLabels;
31
- class MetricOptions {
1
+ import { toMetricValue } from './numberish.js';
2
+ import { NamedResultDescriptor, normalizeKey } from './metadata.js';
3
+ import { AggregationType, MetricConfig, MetricType } from '@sentio/protos';
4
+ import { MapStateStorage } from '@sentio/runtime';
5
+ export class MetricOptions {
32
6
  unit;
33
7
  description;
34
8
  sparse;
35
9
  persistentBetweenVersion;
36
10
  aggregationConfig;
37
11
  }
38
- exports.MetricOptions = MetricOptions;
39
- class CounterOptions {
12
+ export class CounterOptions {
40
13
  unit;
41
14
  description;
42
15
  sparse;
43
16
  }
44
- exports.CounterOptions = CounterOptions;
45
17
  // enum MetricType {
46
18
  // Counter = 0,
47
19
  // Gauge = 1,
48
20
  // }
49
- class Metric extends metadata_1.NamedResultDescriptor {
21
+ export class Metric extends NamedResultDescriptor {
50
22
  config;
51
23
  constructor(type, name, option) {
52
24
  super(normalizeKey(name));
53
- this.config = protos_1.MetricConfig.fromPartial({ name: this.name, type: type, ...option });
25
+ this.config = MetricConfig.fromPartial({ name: this.name, type: type, ...option });
54
26
  const aggregationConfig = this.config.aggregationConfig;
55
27
  if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {
56
28
  if (aggregationConfig.intervalInMinutes.length > 1) {
57
29
  console.error('current only support one intervalInMinutes, only first interval will be used for', name);
58
30
  }
59
31
  if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {
60
- aggregationConfig.types = [protos_1.AggregationType.SUM, protos_1.AggregationType.COUNT];
32
+ aggregationConfig.types = [AggregationType.SUM, AggregationType.COUNT];
61
33
  }
62
34
  }
63
35
  }
64
36
  }
65
- exports.Metric = Metric;
66
- class MetricState extends runtime_1.MapStateStorage {
37
+ export class MetricState extends MapStateStorage {
67
38
  static INSTANCE = new MetricState();
68
39
  getOrRegisterMetric(type, name, option) {
69
40
  const metricMap = this.getOrRegister();
@@ -72,7 +43,7 @@ class MetricState extends runtime_1.MapStateStorage {
72
43
  throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`);
73
44
  }
74
45
  if (!metric) {
75
- if (type === protos_1.MetricType.COUNTER) {
46
+ if (type === MetricType.COUNTER) {
76
47
  metric = Counter._create(name, option);
77
48
  }
78
49
  else {
@@ -83,10 +54,9 @@ class MetricState extends runtime_1.MapStateStorage {
83
54
  return metric;
84
55
  }
85
56
  }
86
- exports.MetricState = MetricState;
87
- class Counter extends Metric {
57
+ export class Counter extends Metric {
88
58
  static register(name, option) {
89
- return MetricState.INSTANCE.getOrRegisterMetric(protos_1.MetricType.COUNTER, name, option);
59
+ return MetricState.INSTANCE.getOrRegisterMetric(MetricType.COUNTER, name, option);
90
60
  }
91
61
  /**
92
62
  * internal use only, to create a metric use {@link register} instead
@@ -95,7 +65,7 @@ class Counter extends Metric {
95
65
  return new Counter(name, option);
96
66
  }
97
67
  constructor(name, option) {
98
- super(protos_1.MetricType.COUNTER, name, option);
68
+ super(MetricType.COUNTER, name, option);
99
69
  }
100
70
  add(ctx, value, labels = {}) {
101
71
  this.record(ctx, value, labels, true);
@@ -106,14 +76,13 @@ class Counter extends Metric {
106
76
  record(ctx, value, labels, add) {
107
77
  ctx._res.counters.push({
108
78
  metadata: ctx.getMetaData(this.name, labels),
109
- metricValue: (0, numberish_1.toMetricValue)(value),
79
+ metricValue: toMetricValue(value),
110
80
  add: add,
111
81
  runtimeInfo: undefined,
112
82
  });
113
83
  }
114
84
  }
115
- exports.Counter = Counter;
116
- class CounterBinding {
85
+ export class CounterBinding {
117
86
  ctx;
118
87
  counter;
119
88
  constructor(name, ctx) {
@@ -127,10 +96,9 @@ class CounterBinding {
127
96
  this.counter.sub(this.ctx, value, labels);
128
97
  }
129
98
  }
130
- exports.CounterBinding = CounterBinding;
131
- class Gauge extends Metric {
99
+ export class Gauge extends Metric {
132
100
  static register(name, option) {
133
- return MetricState.INSTANCE.getOrRegisterMetric(protos_1.MetricType.GAUGE, name, option);
101
+ return MetricState.INSTANCE.getOrRegisterMetric(MetricType.GAUGE, name, option);
134
102
  }
135
103
  /**
136
104
  * internal use only, to create a metric use {@link register} instead
@@ -139,18 +107,17 @@ class Gauge extends Metric {
139
107
  return new Gauge(name, option);
140
108
  }
141
109
  constructor(name, option) {
142
- super(protos_1.MetricType.GAUGE, name, option);
110
+ super(MetricType.GAUGE, name, option);
143
111
  }
144
112
  record(ctx, value, labels = {}) {
145
113
  ctx._res.gauges.push({
146
114
  metadata: ctx.getMetaData(this.config.name, labels),
147
- metricValue: (0, numberish_1.toMetricValue)(value),
115
+ metricValue: toMetricValue(value),
148
116
  runtimeInfo: undefined,
149
117
  });
150
118
  }
151
119
  }
152
- exports.Gauge = Gauge;
153
- class GaugeBinding {
120
+ export class GaugeBinding {
154
121
  gauge;
155
122
  ctx;
156
123
  constructor(name, ctx) {
@@ -161,8 +128,7 @@ class GaugeBinding {
161
128
  this.gauge.record(this.ctx, value, labels);
162
129
  }
163
130
  }
164
- exports.GaugeBinding = GaugeBinding;
165
- class Meter {
131
+ export class Meter {
166
132
  ctx;
167
133
  constructor(ctx) {
168
134
  this.ctx = ctx;
@@ -174,5 +140,4 @@ class Meter {
174
140
  return new GaugeBinding(name, this.ctx);
175
141
  }
176
142
  }
177
- exports.Meter = Meter;
178
143
  //# sourceMappingURL=meter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/core/meter.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseContext } from './base-context'\nimport { Numberish, toMetricValue } from './numberish'\nimport { Labels, NamedResultDescriptor } from './metadata'\nimport { AggregationConfig, AggregationType, MetricConfig, MetricType } from '@sentio/protos'\nimport { MapStateStorage } from '@sentio/runtime'\n\nexport function normalizeName(name: string): string {\n return name.slice(0, 100).replace(/[^_\\-a-zA-Z0-9]/g, '_')\n}\n\nexport function normalizeKey(name: string): string {\n if (name === 'labels') {\n return 'labels_'\n }\n return normalizeName(name)\n}\n\nexport function normalizeValue(name: string): string {\n return name.slice(0, 100)\n}\n\nexport function normalizeLabels(labels: Labels): Labels {\n const normLabels: Labels = {}\n for (const key in labels) {\n normLabels[normalizeKey(key)] = normalizeValue(labels[key])\n }\n return normLabels\n}\n\nexport class MetricOptions {\n unit?: string\n description?: string\n sparse?: boolean\n persistentBetweenVersion?: boolean\n aggregationConfig?: Partial<AggregationConfig>\n}\n\nexport class CounterOptions {\n unit?: string\n description?: string\n sparse?: boolean\n}\n\n// enum MetricType {\n// Counter = 0,\n// Gauge = 1,\n// }\n\nexport class Metric extends NamedResultDescriptor {\n config: MetricConfig\n constructor(type: MetricType, name: string, option?: MetricOptions) {\n super(normalizeKey(name))\n this.config = MetricConfig.fromPartial({ name: this.name, type: type, ...option })\n const aggregationConfig = this.config.aggregationConfig\n if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {\n if (aggregationConfig.intervalInMinutes.length > 1) {\n console.error('current only support one intervalInMinutes, only first interval will be used for', name)\n }\n if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {\n aggregationConfig.types = [AggregationType.SUM, AggregationType.COUNT]\n }\n }\n }\n}\n\nexport class MetricState extends MapStateStorage<Metric> {\n static INSTANCE = new MetricState()\n\n getOrRegisterMetric(type: MetricType, name: string, option?: CounterOptions | MetricOptions): Metric {\n const metricMap = this.getOrRegister()\n let metric = metricMap.get(name)\n if (metric && metric.config.type !== type) {\n throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`)\n }\n\n if (!metric) {\n if (type === MetricType.COUNTER) {\n metric = Counter._create(name, option)\n } else {\n metric = Gauge._create(name, option)\n }\n }\n metricMap.set(name, metric)\n return metric\n }\n}\n\nexport class Counter extends Metric {\n static register(name: string, option?: CounterOptions): Counter {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.COUNTER, name, option) as Counter\n }\n\n /**\n * internal use only, to create a metric use {@link register} instead\n */\n static _create(name: string, option?: MetricOptions): Counter {\n return new Counter(name, option)\n }\n\n private constructor(name: string, option?: MetricOptions) {\n super(MetricType.COUNTER, name, option)\n }\n\n add(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, true)\n }\n\n sub(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, false)\n }\n\n private record(ctx: BaseContext, value: Numberish, labels: Labels, add: boolean) {\n ctx._res.counters.push({\n metadata: ctx.getMetaData(this.name, labels),\n metricValue: toMetricValue(value),\n add: add,\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class CounterBinding {\n private readonly ctx: BaseContext\n private readonly counter: Counter\n\n constructor(name: string, ctx: BaseContext) {\n this.counter = Counter._create(name)\n this.ctx = ctx\n }\n\n add(value: Numberish, labels: Labels = {}) {\n this.counter.add(this.ctx, value, labels)\n }\n\n sub(value: Numberish, labels: Labels = {}) {\n this.counter.sub(this.ctx, value, labels)\n }\n}\n\nexport class Gauge extends Metric {\n static register(name: string, option?: MetricOptions): Gauge {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.GAUGE, name, option) as Gauge\n }\n\n /**\n * internal use only, to create a metric use {@link register} instead\n */\n static _create(name: string, option?: MetricOptions): Gauge {\n return new Gauge(name, option)\n }\n\n private constructor(name: string, option?: MetricOptions) {\n super(MetricType.GAUGE, name, option)\n }\n\n record(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n ctx._res.gauges.push({\n metadata: ctx.getMetaData(this.config.name, labels),\n metricValue: toMetricValue(value),\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class GaugeBinding {\n private readonly gauge: Gauge\n private readonly ctx: BaseContext\n\n constructor(name: string, ctx: BaseContext) {\n this.gauge = Gauge._create(name)\n this.ctx = ctx\n }\n\n record(value: Numberish, labels: Labels = {}) {\n this.gauge.record(this.ctx, value, labels)\n }\n}\n\nexport class Meter {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext) {\n this.ctx = ctx\n }\n\n Counter(name: string): CounterBinding {\n return new CounterBinding(name, this.ctx)\n }\n\n Gauge(name: string): GaugeBinding {\n return new GaugeBinding(name, this.ctx)\n }\n}\n"]}
1
+ {"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/core/meter.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAU,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAqB,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,OAAO,aAAa;IACxB,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,MAAM,CAAU;IAChB,wBAAwB,CAAU;IAClC,iBAAiB,CAA6B;CAC/C;AAED,MAAM,OAAO,cAAc;IACzB,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,MAAM,CAAU;CACjB;AAED,oBAAoB;AACpB,iBAAiB;AACjB,eAAe;AACf,IAAI;AAEJ,MAAM,OAAO,MAAO,SAAQ,qBAAqB;IAC/C,MAAM,CAAc;IACpB,YAAY,IAAgB,EAAE,IAAY,EAAE,MAAsB;QAChE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;QAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAA;QACvD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACnE,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClD,OAAO,CAAC,KAAK,CAAC,kFAAkF,EAAE,IAAI,CAAC,CAAA;aACxG;YACD,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtF,iBAAiB,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;aACvE;SACF;IACH,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,eAAuB;IACtD,MAAM,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAA;IAEnC,mBAAmB,CAAC,IAAgB,EAAE,IAAY,EAAE,MAAuC;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;YACzC,MAAM,KAAK,CAAC,YAAY,IAAI,mBAAmB,IAAI,uBAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;SAChG;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE;gBAC/B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aACvC;iBAAM;gBACL,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aACrC;SACF;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;;AAGH,MAAM,OAAO,OAAQ,SAAQ,MAAM;IACjC,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAuB;QACnD,OAAO,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAY,CAAA;IAC9F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,MAAsB;QACjD,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,YAAoB,IAAY,EAAE,MAAsB;QACtD,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,GAAG,CAAC,GAAgB,EAAE,KAAgB,EAAE,SAAiB,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,GAAG,CAAC,GAAgB,EAAE,KAAgB,EAAE,SAAiB,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC;IAEO,MAAM,CAAC,GAAgB,EAAE,KAAgB,EAAE,MAAc,EAAE,GAAY;QAC7E,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;YAC5C,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC;YACjC,GAAG,EAAE,GAAG;YACR,WAAW,EAAE,SAAS;SACvB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IACR,GAAG,CAAa;IAChB,OAAO,CAAS;IAEjC,YAAY,IAAY,EAAE,GAAgB;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,GAAG,CAAC,KAAgB,EAAE,SAAiB,EAAE;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,GAAG,CAAC,KAAgB,EAAE,SAAiB,EAAE;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,MAAM;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAsB;QAClD,OAAO,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAU,CAAA;IAC1F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,MAAsB;QACjD,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,YAAoB,IAAY,EAAE,MAAsB;QACtD,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,GAAgB,EAAE,KAAgB,EAAE,SAAiB,EAAE;QAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;YACnD,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC;YACjC,WAAW,EAAE,SAAS;SACvB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACN,KAAK,CAAO;IACZ,GAAG,CAAa;IAEjC,YAAY,IAAY,EAAE,GAAgB;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,KAAgB,EAAE,SAAiB,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IACC,GAAG,CAAa;IAEjC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;CACF","sourcesContent":["import { BaseContext } from './base-context.js'\nimport { Numberish, toMetricValue } from './numberish.js'\nimport { Labels, NamedResultDescriptor, normalizeKey } from './metadata.js'\nimport { AggregationConfig, AggregationType, MetricConfig, MetricType } from '@sentio/protos'\nimport { MapStateStorage } from '@sentio/runtime'\n\nexport class MetricOptions {\n unit?: string\n description?: string\n sparse?: boolean\n persistentBetweenVersion?: boolean\n aggregationConfig?: Partial<AggregationConfig>\n}\n\nexport class CounterOptions {\n unit?: string\n description?: string\n sparse?: boolean\n}\n\n// enum MetricType {\n// Counter = 0,\n// Gauge = 1,\n// }\n\nexport class Metric extends NamedResultDescriptor {\n config: MetricConfig\n constructor(type: MetricType, name: string, option?: MetricOptions) {\n super(normalizeKey(name))\n this.config = MetricConfig.fromPartial({ name: this.name, type: type, ...option })\n const aggregationConfig = this.config.aggregationConfig\n if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {\n if (aggregationConfig.intervalInMinutes.length > 1) {\n console.error('current only support one intervalInMinutes, only first interval will be used for', name)\n }\n if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {\n aggregationConfig.types = [AggregationType.SUM, AggregationType.COUNT]\n }\n }\n }\n}\n\nexport class MetricState extends MapStateStorage<Metric> {\n static INSTANCE = new MetricState()\n\n getOrRegisterMetric(type: MetricType, name: string, option?: CounterOptions | MetricOptions): Metric {\n const metricMap = this.getOrRegister()\n let metric = metricMap.get(name)\n if (metric && metric.config.type !== type) {\n throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`)\n }\n\n if (!metric) {\n if (type === MetricType.COUNTER) {\n metric = Counter._create(name, option)\n } else {\n metric = Gauge._create(name, option)\n }\n }\n metricMap.set(name, metric)\n return metric\n }\n}\n\nexport class Counter extends Metric {\n static register(name: string, option?: CounterOptions): Counter {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.COUNTER, name, option) as Counter\n }\n\n /**\n * internal use only, to create a metric use {@link register} instead\n */\n static _create(name: string, option?: MetricOptions): Counter {\n return new Counter(name, option)\n }\n\n private constructor(name: string, option?: MetricOptions) {\n super(MetricType.COUNTER, name, option)\n }\n\n add(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, true)\n }\n\n sub(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, false)\n }\n\n private record(ctx: BaseContext, value: Numberish, labels: Labels, add: boolean) {\n ctx._res.counters.push({\n metadata: ctx.getMetaData(this.name, labels),\n metricValue: toMetricValue(value),\n add: add,\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class CounterBinding {\n private readonly ctx: BaseContext\n private readonly counter: Counter\n\n constructor(name: string, ctx: BaseContext) {\n this.counter = Counter._create(name)\n this.ctx = ctx\n }\n\n add(value: Numberish, labels: Labels = {}) {\n this.counter.add(this.ctx, value, labels)\n }\n\n sub(value: Numberish, labels: Labels = {}) {\n this.counter.sub(this.ctx, value, labels)\n }\n}\n\nexport class Gauge extends Metric {\n static register(name: string, option?: MetricOptions): Gauge {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.GAUGE, name, option) as Gauge\n }\n\n /**\n * internal use only, to create a metric use {@link register} instead\n */\n static _create(name: string, option?: MetricOptions): Gauge {\n return new Gauge(name, option)\n }\n\n private constructor(name: string, option?: MetricOptions) {\n super(MetricType.GAUGE, name, option)\n }\n\n record(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n ctx._res.gauges.push({\n metadata: ctx.getMetaData(this.config.name, labels),\n metricValue: toMetricValue(value),\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class GaugeBinding {\n private readonly gauge: Gauge\n private readonly ctx: BaseContext\n\n constructor(name: string, ctx: BaseContext) {\n this.gauge = Gauge._create(name)\n this.ctx = ctx\n }\n\n record(value: Numberish, labels: Labels = {}) {\n this.gauge.record(this.ctx, value, labels)\n }\n}\n\nexport class Meter {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext) {\n this.ctx = ctx\n }\n\n Counter(name: string): CounterBinding {\n return new CounterBinding(name, this.ctx)\n }\n\n Gauge(name: string): GaugeBinding {\n return new GaugeBinding(name, this.ctx)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"meter.test.js","sourceRoot":"","sources":["../../src/core/meter.test.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAC7B,mCAAwD;AAExD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACrC,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACtC,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QAE9C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QAC9C,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QAEhD,IAAA,aAAM,EAAC,IAAA,qBAAa,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAC9B,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAA;QAEvC,IAAA,aAAM,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { expect } from 'chai'\nimport { normalizeLabels, normalizeName } from './meter'\n\ndescribe('meter tests', () => {\n test('test normalization ', async () => {\n expect(normalizeName('abc')).eq('abc')\n expect(normalizeName('a-b-c')).eq('a-b-c')\n expect(normalizeName('_a-B-1.')).eq('_a-B-1_')\n\n expect(normalizeName('a/b\\\\c\\n')).eq('a_b_c_')\n expect(normalizeName('abc abc')).eq('abc_abc')\n expect(normalizeName('*&~')).eq('___')\n\n expect(normalizeName('vo total')).eq('vo_total')\n\n expect(normalizeName('x'.repeat(200)).length).eq(100)\n })\n\n test('test labels', async () => {\n const labels = { labels: '0' }\n const updated = normalizeLabels(labels)\n\n expect(updated['labels_']).eq('0')\n })\n})\n"]}
1
+ {"version":3,"file":"meter.test.js","sourceRoot":"","sources":["../../src/core/meter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE9D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QAE9C,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QAEtC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QAEhD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAC9B,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAEvC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { expect } from 'chai'\nimport { normalizeLabels, normalizeName } from './metadata.js'\n\ndescribe('meter tests', () => {\n test('test normalization ', async () => {\n expect(normalizeName('abc')).eq('abc')\n expect(normalizeName('a-b-c')).eq('a-b-c')\n expect(normalizeName('_a-B-1.')).eq('_a-B-1_')\n\n expect(normalizeName('a/b\\\\c\\n')).eq('a_b_c_')\n expect(normalizeName('abc abc')).eq('abc_abc')\n expect(normalizeName('*&~')).eq('___')\n\n expect(normalizeName('vo total')).eq('vo_total')\n\n expect(normalizeName('x'.repeat(200)).length).eq(100)\n })\n\n test('test labels', async () => {\n const labels = { labels: '0' }\n const updated = normalizeLabels(labels)\n\n expect(updated['labels_']).eq('0')\n })\n})\n"]}
@@ -1,7 +1,5 @@
1
1
  import { BigInteger, MetricValue } from '@sentio/protos';
2
- import { BigDecimal } from '.';
3
- import { BlockTag } from 'ethers/providers';
2
+ import { BigDecimal } from './big-decimal.js';
4
3
  export type Numberish = number | bigint | BigDecimal | string;
5
- export declare function toBlockTag(a: number | bigint): BlockTag;
6
4
  export declare function toMetricValue(value: Numberish): MetricValue;
7
5
  export declare function toBigInteger(a: Numberish): BigInteger;
@@ -1,19 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toBigInteger = exports.toMetricValue = exports.toBlockTag = void 0;
4
- const protos_1 = require("@sentio/protos");
5
- const _1 = require(".");
6
- function toBlockTag(a) {
7
- if (typeof a === 'number') {
8
- return a;
9
- }
10
- if (a > Number.MAX_SAFE_INTEGER) {
11
- return '0x' + a.toString(16);
12
- }
13
- return Number(a);
14
- }
15
- exports.toBlockTag = toBlockTag;
16
- function toMetricValue(value) {
1
+ import { MetricValue } from '@sentio/protos';
2
+ import { BigDecimal } from './big-decimal.js';
3
+ export function toMetricValue(value) {
17
4
  if (typeof value === 'number') {
18
5
  if (Number.isNaN(value)) {
19
6
  throw new Error('Cannot record NaN value');
@@ -22,28 +9,28 @@ function toMetricValue(value) {
22
9
  throw new Error('Cannot record infinite value');
23
10
  }
24
11
  if (Number.isInteger(value) && !Number.isSafeInteger(value)) {
25
- return protos_1.MetricValue.fromPartial({
12
+ return MetricValue.fromPartial({
26
13
  bigInteger: toBigInteger(value),
27
14
  });
28
15
  }
29
- return protos_1.MetricValue.fromPartial({
16
+ return MetricValue.fromPartial({
30
17
  doubleValue: Number(value),
31
18
  });
32
19
  }
33
20
  if (typeof value === 'bigint') {
34
- return protos_1.MetricValue.fromPartial({
21
+ return MetricValue.fromPartial({
35
22
  bigInteger: toBigInteger(value),
36
23
  });
37
24
  }
38
25
  if (typeof value === 'string') {
39
- return protos_1.MetricValue.fromPartial({
26
+ return MetricValue.fromPartial({
40
27
  bigDecimal: value,
41
28
  });
42
29
  }
43
30
  // if (value instanceof BigDecimal) {
44
31
  // Carefully consider the use case here
45
32
  if (value.isInteger()) {
46
- return protos_1.MetricValue.fromPartial({
33
+ return MetricValue.fromPartial({
47
34
  bigInteger: bigDecimalToBigInteger(value),
48
35
  });
49
36
  }
@@ -55,13 +42,12 @@ function toMetricValue(value) {
55
42
  // NaN also not finite
56
43
  throw new Error('Cannot record infinite value');
57
44
  }
58
- return protos_1.MetricValue.fromPartial({
45
+ return MetricValue.fromPartial({
59
46
  bigDecimal: value.toString(), // e.g. -7.350918e-428
60
47
  });
61
48
  }
62
49
  // }
63
50
  }
64
- exports.toMetricValue = toMetricValue;
65
51
  function bigDecimalToBigInteger(a) {
66
52
  const negative = a.isNegative();
67
53
  if (negative) {
@@ -76,7 +62,7 @@ function intToBigInteger(a) {
76
62
  }
77
63
  return hexToBigInteger(a.toString(16), negative);
78
64
  }
79
- function toBigInteger(a) {
65
+ export function toBigInteger(a) {
80
66
  if (typeof a === 'number') {
81
67
  return intToBigInteger(a);
82
68
  }
@@ -86,7 +72,7 @@ function toBigInteger(a) {
86
72
  if (typeof a === 'string') {
87
73
  return intToBigInteger(BigInt(a));
88
74
  }
89
- if (a instanceof _1.BigDecimal) {
75
+ if (a instanceof BigDecimal) {
90
76
  return bigDecimalToBigInteger(a);
91
77
  }
92
78
  return intToBigInteger(a);
@@ -101,7 +87,6 @@ function toBigInteger(a) {
101
87
  // negative, value: new Uint8Array(value.reverse()),
102
88
  // }
103
89
  }
104
- exports.toBigInteger = toBigInteger;
105
90
  function hexToBigInteger(hex, negative) {
106
91
  if (hex.length % 2 === 1) {
107
92
  hex = '0' + hex;
@@ -1 +1 @@
1
- {"version":3,"file":"numberish.js","sourceRoot":"","sources":["../../src/core/numberish.ts"],"names":[],"mappings":"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","sourcesContent":["import { BigInteger, MetricValue } from '@sentio/protos'\nimport { BigDecimal } from '.'\nimport { BlockTag } from 'ethers/providers'\n\nexport type Numberish = number | bigint | BigDecimal | string\n\nexport function toBlockTag(a: number | bigint): BlockTag {\n if (typeof a === 'number') {\n return a\n }\n if (a > Number.MAX_SAFE_INTEGER) {\n return '0x' + a.toString(16)\n }\n return Number(a)\n}\n\nexport function toMetricValue(value: Numberish): MetricValue {\n if (typeof value === 'number') {\n if (Number.isNaN(value)) {\n throw new Error('Cannot record NaN value')\n }\n if (!Number.isFinite(value)) {\n throw new Error('Cannot record infinite value')\n }\n if (Number.isInteger(value) && !Number.isSafeInteger(value)) {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value),\n })\n }\n\n return MetricValue.fromPartial({\n doubleValue: Number(value),\n })\n }\n if (typeof value === 'bigint') {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value),\n })\n }\n if (typeof value === 'string') {\n return MetricValue.fromPartial({\n bigDecimal: value,\n })\n }\n // if (value instanceof BigDecimal) {\n // Carefully consider the use case here\n if (value.isInteger()) {\n return MetricValue.fromPartial({\n bigInteger: bigDecimalToBigInteger(value),\n })\n } else {\n if (value.isNaN()) {\n throw new Error('Cannot record NaN value')\n }\n if (!value.isFinite()) {\n // NaN also not finite\n throw new Error('Cannot record infinite value')\n }\n return MetricValue.fromPartial({\n bigDecimal: value.toString(), // e.g. -7.350918e-428\n })\n }\n // }\n}\n\nfunction bigDecimalToBigInteger(a: BigDecimal): BigInteger {\n const negative = a.isNegative()\n if (negative) {\n a = a.abs()\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nfunction intToBigInteger(a: bigint | number): BigInteger {\n const negative = a < 0\n if (negative) {\n a = -a\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nexport function toBigInteger(a: Numberish): BigInteger {\n if (typeof a === 'number') {\n return intToBigInteger(a)\n }\n if (typeof a === 'bigint') {\n return intToBigInteger(a)\n }\n if (typeof a === 'string') {\n return intToBigInteger(BigInt(a))\n }\n if (a instanceof BigDecimal) {\n return bigDecimalToBigInteger(a)\n }\n return intToBigInteger(a)\n\n // Following code is actually very slow\n // while (a > 0) {\n // const d = a & 0xffn\n // a >>= 8n\n // value.push(Number(d))\n // }\n //\n // return {\n // negative, value: new Uint8Array(value.reverse()),\n // }\n}\n\nfunction hexToBigInteger(hex: string, negative: boolean): BigInteger {\n if (hex.length % 2 === 1) {\n hex = '0' + hex\n }\n const buffer = Buffer.from(hex, 'hex')\n\n return {\n negative: negative,\n data: new Uint8Array(buffer),\n }\n}\n"]}
1
+ {"version":3,"file":"numberish.js","sourceRoot":"","sources":["../../src/core/numberish.ts"],"names":[],"mappings":"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","sourcesContent":["import { BigInteger, MetricValue } from '@sentio/protos'\nimport { BigDecimal } from './big-decimal.js'\n\nexport type Numberish = number | bigint | BigDecimal | string\n\nexport function toMetricValue(value: Numberish): MetricValue {\n if (typeof value === 'number') {\n if (Number.isNaN(value)) {\n throw new Error('Cannot record NaN value')\n }\n if (!Number.isFinite(value)) {\n throw new Error('Cannot record infinite value')\n }\n if (Number.isInteger(value) && !Number.isSafeInteger(value)) {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value),\n })\n }\n\n return MetricValue.fromPartial({\n doubleValue: Number(value),\n })\n }\n if (typeof value === 'bigint') {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value),\n })\n }\n if (typeof value === 'string') {\n return MetricValue.fromPartial({\n bigDecimal: value,\n })\n }\n // if (value instanceof BigDecimal) {\n // Carefully consider the use case here\n if (value.isInteger()) {\n return MetricValue.fromPartial({\n bigInteger: bigDecimalToBigInteger(value),\n })\n } else {\n if (value.isNaN()) {\n throw new Error('Cannot record NaN value')\n }\n if (!value.isFinite()) {\n // NaN also not finite\n throw new Error('Cannot record infinite value')\n }\n return MetricValue.fromPartial({\n bigDecimal: value.toString(), // e.g. -7.350918e-428\n })\n }\n // }\n}\n\nfunction bigDecimalToBigInteger(a: BigDecimal): BigInteger {\n const negative = a.isNegative()\n if (negative) {\n a = a.abs()\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nfunction intToBigInteger(a: bigint | number): BigInteger {\n const negative = a < 0\n if (negative) {\n a = -a\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nexport function toBigInteger(a: Numberish): BigInteger {\n if (typeof a === 'number') {\n return intToBigInteger(a)\n }\n if (typeof a === 'bigint') {\n return intToBigInteger(a)\n }\n if (typeof a === 'string') {\n return intToBigInteger(BigInt(a))\n }\n if (a instanceof BigDecimal) {\n return bigDecimalToBigInteger(a)\n }\n return intToBigInteger(a)\n\n // Following code is actually very slow\n // while (a > 0) {\n // const d = a & 0xffn\n // a >>= 8n\n // value.push(Number(d))\n // }\n //\n // return {\n // negative, value: new Uint8Array(value.reverse()),\n // }\n}\n\nfunction hexToBigInteger(hex: string, negative: boolean): BigInteger {\n if (hex.length % 2 === 1) {\n hex = '0' + hex\n }\n const buffer = Buffer.from(hex, 'hex')\n\n return {\n negative: negative,\n data: new Uint8Array(buffer),\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"numberish.test.js","sourceRoot":"","sources":["../../src/core/numberish.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { toBigInteger, toMetricValue } from './numberish'\nimport { webcrypto } from 'crypto'\nimport { performance } from 'perf_hooks'\nimport { BigInteger } from '@sentio/protos'\nimport { BigDecimal } from '.'\nimport { bytesToBigInt } from '../utils/conversion'\n\n// TODO add test for type conversion\ndescribe('Numberish tests', () => {\n const values: bigint[] = [0n, -0n, 3815372408723498172304781320847103784n, 2132n, -18708707n, 123n << 100n]\n\n test('big integer conversion correctness ', async () => {\n for (const v of values) {\n const b = toBigInteger(v)\n const hex1 = BigIntegerToHex(b)\n const hex2 = v.toString(16)\n expect(hex1).equals(hex2)\n }\n })\n\n test('random big integer conversion correctness ', async () => {\n for (let i = 0; i < 1000; i++) {\n const random = webcrypto.getRandomValues(new Uint8Array(256))\n const v = bytesToBigInt(random)\n const b = toBigInteger(v)\n\n expect(bytesToBigInt(b.data)).equals(v)\n }\n })\n\n test.skip('random big integer performance', async () => {\n jest.setTimeout(100000)\n jest.retryTimes(3)\n\n let timer1 = 0\n let timer2 = 0\n for (let i = 0; i < 1000; i++) {\n // Use higher value for local debugging\n const random = webcrypto.getRandomValues(new Uint8Array(256))\n const v = bytesToBigInt(random)\n\n let start = performance.now()\n toBigInteger(v)\n timer1 += performance.now() - start\n\n start = performance.now()\n v.toString(16)\n timer2 += performance.now() - start\n }\n\n console.log(timer1, timer2)\n expect(timer1).to.lessThan(timer2 * 3)\n })\n\n test('metric values', async () => {\n const longDec = '12.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002'\n expect(toMetricValue(new BigDecimal(longDec)).bigDecimal == longDec)\n\n const complexDec = '-7.350918e-428'\n expect(toMetricValue(new BigDecimal(complexDec)).bigDecimal == complexDec)\n\n expect(\n BigIntegerToBigInt(toMetricValue(new BigDecimal('100000')).bigInteger || BigInteger.fromPartial({})) === 100000n\n )\n })\n})\n\n// Performance very bad\nfunction BigIntegerToHex(b: BigInteger): string {\n let res = bytesToBigInt(b.data).toString(16)\n if (b.negative) {\n res = '-' + res\n }\n return res\n}\n\nfunction BigIntegerToBigInt(b: BigInteger): bigint {\n let res = bytesToBigInt(b.data)\n if (b.negative) {\n res = -res\n }\n return res\n}\n"]}
1
+ {"version":3,"file":"numberish.test.js","sourceRoot":"","sources":["../../src/core/numberish.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { toBigInteger, toMetricValue } from './numberish.js'\nimport { webcrypto } from 'crypto'\nimport { performance } from 'perf_hooks'\nimport { BigInteger } from '@sentio/protos'\nimport { BigDecimal } from './big-decimal.js'\nimport { bytesToBigInt } from '../utils/conversion.js'\n\n// TODO add test for type conversion\ndescribe('Numberish tests', () => {\n const values: bigint[] = [0n, -0n, 3815372408723498172304781320847103784n, 2132n, -18708707n, 123n << 100n]\n\n test('big integer conversion correctness ', async () => {\n for (const v of values) {\n const b = toBigInteger(v)\n const hex1 = BigIntegerToHex(b)\n const hex2 = v.toString(16)\n expect(hex1).equals(hex2)\n }\n })\n\n test('random big integer conversion correctness ', async () => {\n for (let i = 0; i < 1000; i++) {\n const random = webcrypto.getRandomValues(new Uint8Array(256))\n const v = bytesToBigInt(random)\n const b = toBigInteger(v)\n\n expect(bytesToBigInt(b.data)).equals(v)\n }\n })\n\n test.skip('random big integer performance', async () => {\n jest.setTimeout(100000)\n jest.retryTimes(3)\n\n let timer1 = 0\n let timer2 = 0\n for (let i = 0; i < 1000; i++) {\n // Use higher value for local debugging\n const random = webcrypto.getRandomValues(new Uint8Array(256))\n const v = bytesToBigInt(random)\n\n let start = performance.now()\n toBigInteger(v)\n timer1 += performance.now() - start\n\n start = performance.now()\n v.toString(16)\n timer2 += performance.now() - start\n }\n\n console.log(timer1, timer2)\n expect(timer1).to.lessThan(timer2 * 3)\n })\n\n test('metric values', async () => {\n const longDec = '12.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002'\n expect(toMetricValue(new BigDecimal(longDec)).bigDecimal == longDec)\n\n const complexDec = '-7.350918e-428'\n expect(toMetricValue(new BigDecimal(complexDec)).bigDecimal == complexDec)\n\n expect(\n BigIntegerToBigInt(toMetricValue(new BigDecimal('100000')).bigInteger || BigInteger.fromPartial({})) === 100000n\n )\n })\n})\n\n// Performance very bad\nfunction BigIntegerToHex(b: BigInteger): string {\n let res = bytesToBigInt(b.data).toString(16)\n if (b.negative) {\n res = '-' + res\n }\n return res\n}\n\nfunction BigIntegerToBigInt(b: BigInteger): bigint {\n let res = bytesToBigInt(b.data)\n if (b.negative) {\n res = -res\n }\n return res\n}\n"]}
@@ -1,21 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SuiPlugin = void 0;
4
- const runtime_1 = require("@sentio/runtime");
5
- const protos_1 = require("@sentio/protos");
6
- const nice_grpc_1 = require("nice-grpc");
7
- const chain_1 = require("../utils/chain");
8
- const sui_processor_1 = require("./sui-processor");
9
- class SuiPlugin extends runtime_1.Plugin {
1
+ import { Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime';
2
+ import { HandlerType } from '@sentio/protos';
3
+ import { ServerError, Status } from 'nice-grpc';
4
+ import { CHAIN_IDS } from './chain.js';
5
+ import { SuiProcessorState } from './sui-processor.js';
6
+ export class SuiPlugin extends Plugin {
10
7
  name = 'SuiPlugin';
11
8
  async configure(config) {
12
- for (const suiProcessor of sui_processor_1.SuiProcessorState.INSTANCE.getValues()) {
9
+ for (const suiProcessor of SuiProcessorState.INSTANCE.getValues()) {
13
10
  const contractConfig = {
14
11
  transactionConfig: [],
15
- processorType: runtime_1.USER_PROCESSOR,
12
+ processorType: USER_PROCESSOR,
16
13
  contract: {
17
14
  name: 'sui contract',
18
- chainId: chain_1.CHAIN_IDS.SUI_DEVNET,
15
+ chainId: CHAIN_IDS.SUI_DEVNET,
19
16
  address: suiProcessor.address,
20
17
  abi: '',
21
18
  },
@@ -34,13 +31,12 @@ class SuiPlugin extends runtime_1.Plugin {
34
31
  supportedHandlers = [];
35
32
  processBinding(request) {
36
33
  switch (request.handlerType) {
37
- case protos_1.HandlerType.SUI_TRANSACTION:
34
+ case HandlerType.SUI_TRANSACTION:
38
35
  // return this.processSolInstruction(request)
39
36
  default:
40
- throw new nice_grpc_1.ServerError(nice_grpc_1.Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType);
37
+ throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType);
41
38
  }
42
39
  }
43
40
  }
44
- exports.SuiPlugin = SuiPlugin;
45
- runtime_1.PluginManager.INSTANCE.register(new SuiPlugin());
41
+ PluginManager.INSTANCE.register(new SuiPlugin());
46
42
  //# sourceMappingURL=sui-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sui-plugin.js","sourceRoot":"","sources":["../../src/core/sui-plugin.ts"],"names":[],"mappings":";;;AAAA,6CAAuE;AACvE,2CAA+G;AAE/G,yCAA+C;AAE/C,0CAA0C;AAC1C,mDAAmD;AAEnD,MAAa,SAAU,SAAQ,gBAAM;IACnC,IAAI,GAAW,WAAW,CAAA;IAE1B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,KAAK,MAAM,YAAY,IAAI,iCAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YACjE,MAAM,cAAc,GAAmB;gBACrC,iBAAiB,EAAE,EAAE;gBACrB,aAAa,EAAE,wBAAc;gBAC7B,QAAQ,EAAE;oBACR,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,iBAAS,CAAC,UAAU;oBAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,GAAG,EAAE,EAAE;iBACR;gBACD,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,cAAc;gBAC9C,QAAQ,EAAE,EAAE;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,iBAAiB,EAAE,EAAE;gBACrB,gBAAgB,EAAE,EAAE;aACrB,CAAA;YACD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;SAC5C;IACH,CAAC;IAED,iBAAiB,GAAG,EAAE,CAAA;IAEtB,cAAc,CAAC,OAAoB;QACjC,QAAQ,OAAO,CAAC,WAAW,EAAE;YAC3B,KAAK,oBAAW,CAAC,eAAe,CAAC;YACjC,6CAA6C;YAC7C;gBACE,MAAM,IAAI,uBAAW,CAAC,kBAAM,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;SACrG;IACH,CAAC;CACF;AArCD,8BAqCC;AAED,uBAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAA","sourcesContent":["import { Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport { ContractConfig, DataBinding, HandlerType, ProcessConfigResponse, ProcessResult } from '@sentio/protos'\n\nimport { ServerError, Status } from 'nice-grpc'\n\nimport { CHAIN_IDS } from '../utils/chain'\nimport { SuiProcessorState } from './sui-processor'\n\nexport class SuiPlugin extends Plugin {\n name: string = 'SuiPlugin'\n\n async configure(config: ProcessConfigResponse) {\n for (const suiProcessor of SuiProcessorState.INSTANCE.getValues()) {\n const contractConfig: ContractConfig = {\n transactionConfig: [],\n processorType: USER_PROCESSOR,\n contract: {\n name: 'sui contract',\n chainId: CHAIN_IDS.SUI_DEVNET,\n address: suiProcessor.address,\n abi: '',\n },\n logConfigs: [],\n intervalConfigs: [],\n traceConfigs: [],\n startBlock: suiProcessor.config.startSeqNumber,\n endBlock: 0n,\n instructionConfig: undefined,\n aptosEventConfigs: [],\n aptosCallConfigs: [],\n }\n config.contractConfigs.push(contractConfig)\n }\n }\n\n supportedHandlers = []\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.SUI_TRANSACTION:\n // return this.processSolInstruction(request)\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n }\n}\n\nPluginManager.INSTANCE.register(new SuiPlugin())\n"]}
1
+ {"version":3,"file":"sui-plugin.js","sourceRoot":"","sources":["../../src/core/sui-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAA+B,WAAW,EAAwC,MAAM,gBAAgB,CAAA;AAE/G,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,OAAO,SAAU,SAAQ,MAAM;IACnC,IAAI,GAAW,WAAW,CAAA;IAE1B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,KAAK,MAAM,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YACjE,MAAM,cAAc,GAAmB;gBACrC,iBAAiB,EAAE,EAAE;gBACrB,aAAa,EAAE,cAAc;gBAC7B,QAAQ,EAAE;oBACR,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,SAAS,CAAC,UAAU;oBAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,GAAG,EAAE,EAAE;iBACR;gBACD,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,cAAc;gBAC9C,QAAQ,EAAE,EAAE;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,iBAAiB,EAAE,EAAE;gBACrB,gBAAgB,EAAE,EAAE;aACrB,CAAA;YACD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;SAC5C;IACH,CAAC;IAED,iBAAiB,GAAG,EAAE,CAAA;IAEtB,cAAc,CAAC,OAAoB;QACjC,QAAQ,OAAO,CAAC,WAAW,EAAE;YAC3B,KAAK,WAAW,CAAC,eAAe,CAAC;YACjC,6CAA6C;YAC7C;gBACE,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;SACrG;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAA","sourcesContent":["import { Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport { ContractConfig, DataBinding, HandlerType, ProcessConfigResponse, ProcessResult } from '@sentio/protos'\n\nimport { ServerError, Status } from 'nice-grpc'\n\nimport { CHAIN_IDS } from './chain.js'\nimport { SuiProcessorState } from './sui-processor.js'\n\nexport class SuiPlugin extends Plugin {\n name: string = 'SuiPlugin'\n\n async configure(config: ProcessConfigResponse) {\n for (const suiProcessor of SuiProcessorState.INSTANCE.getValues()) {\n const contractConfig: ContractConfig = {\n transactionConfig: [],\n processorType: USER_PROCESSOR,\n contract: {\n name: 'sui contract',\n chainId: CHAIN_IDS.SUI_DEVNET,\n address: suiProcessor.address,\n abi: '',\n },\n logConfigs: [],\n intervalConfigs: [],\n traceConfigs: [],\n startBlock: suiProcessor.config.startSeqNumber,\n endBlock: 0n,\n instructionConfig: undefined,\n aptosEventConfigs: [],\n aptosCallConfigs: [],\n }\n config.contractConfigs.push(contractConfig)\n }\n }\n\n supportedHandlers = []\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.SUI_TRANSACTION:\n // return this.processSolInstruction(request)\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n }\n}\n\nPluginManager.INSTANCE.register(new SuiPlugin())\n"]}
@@ -1,4 +1,4 @@
1
- import { SuiContext } from './context';
1
+ import { SuiContext } from '../eth/context.js';
2
2
  import { ProcessResult } from '@sentio/protos';
3
3
  import { ListStateStorage } from '@sentio/runtime';
4
4
  type IndexConfigure = {
@@ -1,20 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SuiBaseProcessor = exports.SuiProcessorState = exports.SuiBindOptions = void 0;
4
- const context_1 = require("./context");
5
- const runtime_1 = require("@sentio/runtime");
6
- class SuiBindOptions {
1
+ import { SuiContext } from '../eth/context.js';
2
+ import { ListStateStorage } from '@sentio/runtime';
3
+ export class SuiBindOptions {
7
4
  address;
8
5
  // network?: Networkish = 1
9
6
  // name?: string
10
7
  startBlock;
11
8
  }
12
- exports.SuiBindOptions = SuiBindOptions;
13
- class SuiProcessorState extends runtime_1.ListStateStorage {
9
+ export class SuiProcessorState extends ListStateStorage {
14
10
  static INSTANCE = new SuiProcessorState();
15
11
  }
16
- exports.SuiProcessorState = SuiProcessorState;
17
- class SuiBaseProcessor {
12
+ export class SuiBaseProcessor {
18
13
  transactionHanlder;
19
14
  address;
20
15
  config = { startSeqNumber: 0n };
@@ -30,7 +25,7 @@ class SuiBaseProcessor {
30
25
  return this;
31
26
  }
32
27
  handleTransaction(txn, slot) {
33
- const ctx = new context_1.SuiContext(this.address, slot);
28
+ const ctx = new SuiContext(this.address, slot);
34
29
  if (txn) {
35
30
  this.transactionHanlder(txn, ctx);
36
31
  }
@@ -45,5 +40,4 @@ class SuiBaseProcessor {
45
40
  return this;
46
41
  }
47
42
  }
48
- exports.SuiBaseProcessor = SuiBaseProcessor;
49
43
  //# sourceMappingURL=sui-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/core/sui-processor.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC,6CAAkD;AAOlD,MAAa,cAAc;IACzB,OAAO,CAAQ;IACf,2BAA2B;IAC3B,gBAAgB;IAChB,UAAU,CAAkB;CAE7B;AAND,wCAMC;AAED,MAAa,iBAAkB,SAAQ,0BAAkC;IACvE,MAAM,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAA;;AAD3C,8CAEC;AAED,MAAa,gBAAgB;IACpB,kBAAkB,CAA6C;IACtE,OAAO,CAAQ;IACf,MAAM,GAAmB,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IAE/C,YAAY,IAAY,EAAE,OAAuB;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;SACnC;QACD,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAEM,aAAa,CAAC,OAAoD;QACvE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,iBAAiB,CAAC,GAAQ,EAAE,IAAY;QAC7C,MAAM,GAAG,GAAG,IAAI,oBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE9C,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAClC;QACD,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAC/B,CAAC;IAEM,SAAS,CAAC,SAA0B;QACzC,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,QAAyB;QACvC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AApCD,4CAoCC","sourcesContent":["import { SuiContext } from './context'\nimport { ProcessResult } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\n\ntype IndexConfigure = {\n startSeqNumber: bigint\n endSeqNumber?: bigint\n}\n\nexport class SuiBindOptions {\n address: string\n // network?: Networkish = 1\n // name?: string\n startBlock?: bigint | number\n // endBlock?: Long | number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n public transactionHanlder: (transaction: any, ctx: SuiContext) => void\n address: string\n config: IndexConfigure = { startSeqNumber: 0n }\n\n constructor(name: string, options: SuiBindOptions) {\n this.address = options.address\n if (options.startBlock) {\n this.startSlot(options.startBlock)\n }\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n public onTransaction(handler: (transaction: any, ctx: SuiContext) => void) {\n this.transactionHanlder = handler\n return this\n }\n\n public handleTransaction(txn: any, slot: bigint): ProcessResult | null {\n const ctx = new SuiContext(this.address, slot)\n\n if (txn) {\n this.transactionHanlder(txn, ctx)\n }\n return ctx.getProcessResult()\n }\n\n public startSlot(startSlot: bigint | number) {\n this.config.startSeqNumber = BigInt(startSlot)\n return this\n }\n\n public endBlock(endBlock: bigint | number) {\n this.config.endSeqNumber = BigInt(endBlock)\n return this\n }\n}\n"]}
1
+ {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/core/sui-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAOlD,MAAM,OAAO,cAAc;IACzB,OAAO,CAAQ;IACf,2BAA2B;IAC3B,gBAAgB;IAChB,UAAU,CAAkB;CAE7B;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAkC;IACvE,MAAM,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAA;;AAG3C,MAAM,OAAO,gBAAgB;IACpB,kBAAkB,CAA6C;IACtE,OAAO,CAAQ;IACf,MAAM,GAAmB,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IAE/C,YAAY,IAAY,EAAE,OAAuB;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;SACnC;QACD,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAEM,aAAa,CAAC,OAAoD;QACvE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,iBAAiB,CAAC,GAAQ,EAAE,IAAY;QAC7C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE9C,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAClC;QACD,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAC/B,CAAC;IAEM,SAAS,CAAC,SAA0B;QACzC,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,QAAyB;QACvC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;CACF","sourcesContent":["import { SuiContext } from '../eth/context.js'\nimport { ProcessResult } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\n\ntype IndexConfigure = {\n startSeqNumber: bigint\n endSeqNumber?: bigint\n}\n\nexport class SuiBindOptions {\n address: string\n // network?: Networkish = 1\n // name?: string\n startBlock?: bigint | number\n // endBlock?: Long | number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n public transactionHanlder: (transaction: any, ctx: SuiContext) => void\n address: string\n config: IndexConfigure = { startSeqNumber: 0n }\n\n constructor(name: string, options: SuiBindOptions) {\n this.address = options.address\n if (options.startBlock) {\n this.startSlot(options.startBlock)\n }\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n public onTransaction(handler: (transaction: any, ctx: SuiContext) => void) {\n this.transactionHanlder = handler\n return this\n }\n\n public handleTransaction(txn: any, slot: bigint): ProcessResult | null {\n const ctx = new SuiContext(this.address, slot)\n\n if (txn) {\n this.transactionHanlder(txn, ctx)\n }\n return ctx.getProcessResult()\n }\n\n public startSlot(startSlot: bigint | number) {\n this.config.startSeqNumber = BigInt(startSlot)\n return this\n }\n\n public endBlock(endBlock: bigint | number) {\n this.config.endSeqNumber = BigInt(endBlock)\n return this\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { ListStateStorage } from '@sentio/runtime';
2
- import { AccountProcessor } from './account-processor';
2
+ import { AccountProcessor } from './account-processor.js';
3
3
  export declare class AccountProcessorState extends ListStateStorage<AccountProcessor> {
4
4
  static INSTANCE: AccountProcessorState;
5
5
  }
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AccountProcessorState = void 0;
4
- const runtime_1 = require("@sentio/runtime");
5
- class AccountProcessorState extends runtime_1.ListStateStorage {
1
+ import { ListStateStorage } from '@sentio/runtime';
2
+ export class AccountProcessorState extends ListStateStorage {
6
3
  static INSTANCE = new AccountProcessorState();
7
4
  }
8
- exports.AccountProcessorState = AccountProcessorState;
9
5
  //# sourceMappingURL=account-processor-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-processor-state.js","sourceRoot":"","sources":["../../src/eth/account-processor-state.ts"],"names":[],"mappings":";;;AAAA,6CAAkD;AAGlD,MAAa,qBAAsB,SAAQ,0BAAkC;IAC3E,MAAM,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAA;;AAD/C,sDAEC","sourcesContent":["import { ListStateStorage } from '@sentio/runtime'\nimport { AccountProcessor } from './account-processor'\n\nexport class AccountProcessorState extends ListStateStorage<AccountProcessor> {\n static INSTANCE = new AccountProcessorState()\n}\n"]}
1
+ {"version":3,"file":"account-processor-state.js","sourceRoot":"","sources":["../../src/eth/account-processor-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGlD,MAAM,OAAO,qBAAsB,SAAQ,gBAAkC;IAC3E,MAAM,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAA","sourcesContent":["import { ListStateStorage } from '@sentio/runtime'\nimport { AccountProcessor } from './account-processor.js'\n\nexport class AccountProcessorState extends ListStateStorage<AccountProcessor> {\n static INSTANCE = new AccountProcessorState()\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { EthFetchConfig } from '@sentio/sdk';
2
- import { AccountBindOptions } from '../core/bind-options';
3
- import { TransferEvent as ERC20TransferEvent } from '../builtin/internal/ERC20';
4
- import { TransferEvent as ERC721TransferEvent } from '../builtin/internal/ERC721';
5
- import { AccountContext } from '../core/context';
6
- import { PromiseOrVoid } from '../promise-or-void';
7
- import { AddressOrTypeEventFilter, EventsHandler } from './base-processor';
1
+ import { EthFetchConfig } from '@sentio/protos';
2
+ import { AccountBindOptions } from './bind-options.js';
3
+ import { TransferEvent as ERC20TransferEvent } from './builtin/internal/ERC20.js';
4
+ import { TransferEvent as ERC721TransferEvent } from './builtin/internal/ERC721.js';
5
+ import { AccountContext } from './context.js';
6
+ import { PromiseOrVoid } from '../promise-or-void.js';
7
+ import { AddressOrTypeEventFilter, EventsHandler } from './base-processor.js';
8
8
  import { LogDescription } from 'ethers';
9
9
  export declare class AccountProcessor {
10
10
  config: AccountBindOptions;