@sentio/sdk 2.0.0-rc.9 → 2.0.1-rc.1

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 (503) 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 +384 -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/run.d.ts +1 -0
  26. package/lib/aptos/codegen/run.js +12 -0
  27. package/lib/aptos/codegen/run.js.map +1 -0
  28. package/lib/aptos/codegen/typegen.d.ts +18 -0
  29. package/lib/aptos/codegen/typegen.js +145 -0
  30. package/lib/aptos/codegen/typegen.js.map +1 -0
  31. package/lib/aptos/codegen/typegen.test.d.ts +1 -0
  32. package/lib/aptos/codegen/typegen.test.js.map +1 -0
  33. package/lib/aptos/context.d.ts +21 -0
  34. package/lib/aptos/context.js +59 -0
  35. package/lib/aptos/context.js.map +1 -0
  36. package/lib/aptos/index.d.ts +9 -0
  37. package/lib/aptos/index.js +8 -0
  38. package/lib/aptos/index.js.map +1 -0
  39. package/lib/aptos/models.d.ts +29 -0
  40. package/lib/aptos/models.js +2 -0
  41. package/lib/aptos/models.js.map +1 -0
  42. package/lib/aptos/move-coder.d.ts +22 -0
  43. package/lib/aptos/move-coder.js +162 -0
  44. package/lib/aptos/move-coder.js.map +1 -0
  45. package/lib/aptos/move-types.d.ts +10 -0
  46. package/lib/aptos/move-types.js +2 -0
  47. package/lib/aptos/move-types.js.map +1 -0
  48. package/lib/aptos/network.d.ts +11 -0
  49. package/lib/aptos/network.js +27 -0
  50. package/lib/aptos/network.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/big-decimal.d.ts +2 -0
  77. package/lib/core/big-decimal.js +8 -0
  78. package/lib/core/big-decimal.js.map +1 -1
  79. package/lib/{utils → core}/chain.d.ts +0 -0
  80. package/lib/{utils → core}/chain.js +0 -0
  81. package/lib/core/chain.js.map +1 -0
  82. package/lib/core/index.d.ts +2 -4
  83. package/lib/core/index.js +2 -4
  84. package/lib/core/index.js.map +1 -1
  85. package/lib/core/numberish.d.ts +0 -2
  86. package/lib/core/numberish.js +0 -9
  87. package/lib/core/numberish.js.map +1 -1
  88. package/lib/core/sui-plugin.js +1 -1
  89. package/lib/core/sui-plugin.js.map +1 -1
  90. package/lib/core/sui-processor.d.ts +1 -1
  91. package/lib/core/sui-processor.js +1 -1
  92. package/lib/core/sui-processor.js.map +1 -1
  93. package/lib/eth/account-processor.d.ts +4 -4
  94. package/lib/eth/account-processor.js +4 -4
  95. package/lib/eth/account-processor.js.map +1 -1
  96. package/lib/eth/base-processor-template.d.ts +6 -5
  97. package/lib/eth/base-processor-template.js +1 -1
  98. package/lib/eth/base-processor-template.js.map +1 -1
  99. package/lib/eth/base-processor.d.ts +6 -5
  100. package/lib/eth/base-processor.js +3 -2
  101. package/lib/eth/base-processor.js.map +1 -1
  102. package/lib/{core → eth}/bind-options.d.ts +0 -0
  103. package/lib/{core → eth}/bind-options.js +0 -0
  104. package/lib/eth/bind-options.js.map +1 -0
  105. package/lib/eth/binds.d.ts +2 -2
  106. package/lib/eth/binds.js +1 -1
  107. package/lib/eth/binds.js.map +1 -1
  108. package/lib/{builtin → eth/builtin}/eacaggregatorproxy/index.d.ts +0 -0
  109. package/lib/{builtin → eth/builtin}/eacaggregatorproxy/index.js +0 -0
  110. package/lib/eth/builtin/eacaggregatorproxy/index.js.map +1 -0
  111. package/lib/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.d.ts +0 -0
  112. package/lib/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.js +0 -0
  113. package/lib/eth/builtin/eacaggregatorproxy/test-utils.js.map +1 -0
  114. package/lib/{builtin → eth/builtin}/erc1155/index.d.ts +0 -0
  115. package/lib/{builtin → eth/builtin}/erc1155/index.js +0 -0
  116. package/lib/eth/builtin/erc1155/index.js.map +1 -0
  117. package/lib/{builtin → eth/builtin}/erc1155/test-utils.d.ts +0 -0
  118. package/lib/{builtin → eth/builtin}/erc1155/test-utils.js +0 -0
  119. package/lib/eth/builtin/erc1155/test-utils.js.map +1 -0
  120. package/lib/{builtin → eth/builtin}/erc20/index.d.ts +0 -0
  121. package/lib/{builtin → eth/builtin}/erc20/index.js +0 -0
  122. package/lib/eth/builtin/erc20/index.js.map +1 -0
  123. package/lib/{builtin → eth/builtin}/erc20/test-utils.d.ts +0 -0
  124. package/lib/{builtin → eth/builtin}/erc20/test-utils.js +0 -0
  125. package/lib/eth/builtin/erc20/test-utils.js.map +1 -0
  126. package/lib/{builtin → eth/builtin}/erc20bytes/index.d.ts +0 -0
  127. package/lib/{builtin → eth/builtin}/erc20bytes/index.js +0 -0
  128. package/lib/eth/builtin/erc20bytes/index.js.map +1 -0
  129. package/lib/{builtin → eth/builtin}/erc20bytes/test-utils.d.ts +0 -0
  130. package/lib/{builtin → eth/builtin}/erc20bytes/test-utils.js +0 -0
  131. package/lib/eth/builtin/erc20bytes/test-utils.js.map +1 -0
  132. package/lib/{builtin → eth/builtin}/erc721/index.d.ts +0 -0
  133. package/lib/{builtin → eth/builtin}/erc721/index.js +0 -0
  134. package/lib/eth/builtin/erc721/index.js.map +1 -0
  135. package/lib/{builtin → eth/builtin}/erc721/test-utils.d.ts +0 -0
  136. package/lib/{builtin → eth/builtin}/erc721/test-utils.js +0 -0
  137. package/lib/eth/builtin/erc721/test-utils.js.map +1 -0
  138. package/lib/{builtin → eth/builtin}/index.d.ts +0 -0
  139. package/lib/{builtin → eth/builtin}/index.js +0 -0
  140. package/lib/eth/builtin/index.js.map +1 -0
  141. package/lib/{builtin → eth/builtin}/internal/EACAggregatorProxy.d.ts +5 -5
  142. package/lib/{builtin → eth/builtin}/internal/EACAggregatorProxy.js +0 -0
  143. package/lib/eth/builtin/internal/EACAggregatorProxy.js.map +1 -0
  144. package/lib/{builtin → eth/builtin}/internal/ERC1155.d.ts +5 -5
  145. package/lib/{builtin → eth/builtin}/internal/ERC1155.js +0 -0
  146. package/lib/eth/builtin/internal/ERC1155.js.map +1 -0
  147. package/lib/{builtin → eth/builtin}/internal/ERC20.d.ts +4 -4
  148. package/lib/{builtin → eth/builtin}/internal/ERC20.js +0 -0
  149. package/lib/eth/builtin/internal/ERC20.js.map +1 -0
  150. package/lib/{builtin → eth/builtin}/internal/ERC20Bytes.d.ts +3 -3
  151. package/lib/{builtin → eth/builtin}/internal/ERC20Bytes.js +0 -0
  152. package/lib/eth/builtin/internal/ERC20Bytes.js.map +1 -0
  153. package/lib/{builtin → eth/builtin}/internal/ERC721.d.ts +4 -4
  154. package/lib/{builtin → eth/builtin}/internal/ERC721.js +0 -0
  155. package/lib/eth/builtin/internal/ERC721.js.map +1 -0
  156. package/lib/{builtin → eth/builtin}/internal/WETH9.d.ts +5 -5
  157. package/lib/{builtin → eth/builtin}/internal/WETH9.js +0 -0
  158. package/lib/eth/builtin/internal/WETH9.js.map +1 -0
  159. package/lib/{builtin → eth/builtin}/internal/common.d.ts +4 -2
  160. package/lib/{builtin → eth/builtin}/internal/common.js +0 -0
  161. package/lib/eth/builtin/internal/common.js.map +1 -0
  162. package/lib/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.d.ts +5 -5
  163. package/lib/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.js +92 -182
  164. package/lib/eth/builtin/internal/eacaggregatorproxy_processor.js.map +1 -0
  165. package/lib/{builtin → eth/builtin}/internal/erc1155_processor.d.ts +5 -5
  166. package/lib/{builtin → eth/builtin}/internal/erc1155_processor.js +27 -52
  167. package/lib/eth/builtin/internal/erc1155_processor.js.map +1 -0
  168. package/lib/{builtin → eth/builtin}/internal/erc20_processor.d.ts +4 -4
  169. package/lib/{builtin → eth/builtin}/internal/erc20_processor.js +42 -82
  170. package/lib/eth/builtin/internal/erc20_processor.js.map +1 -0
  171. package/lib/{builtin → eth/builtin}/internal/erc20bytes_processor.d.ts +3 -3
  172. package/lib/{builtin → eth/builtin}/internal/erc20bytes_processor.js +32 -62
  173. package/lib/eth/builtin/internal/erc20bytes_processor.js.map +1 -0
  174. package/lib/{builtin → eth/builtin}/internal/erc721_processor.d.ts +4 -4
  175. package/lib/{builtin → eth/builtin}/internal/erc721_processor.js +47 -92
  176. package/lib/eth/builtin/internal/erc721_processor.js.map +1 -0
  177. package/lib/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.d.ts +1 -1
  178. package/lib/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.js +0 -0
  179. package/lib/eth/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -0
  180. package/lib/{builtin → eth/builtin}/internal/factories/ERC1155__factory.d.ts +1 -1
  181. package/lib/{builtin → eth/builtin}/internal/factories/ERC1155__factory.js +0 -0
  182. package/lib/eth/builtin/internal/factories/ERC1155__factory.js.map +1 -0
  183. package/lib/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.d.ts +1 -1
  184. package/lib/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.js +0 -0
  185. package/lib/eth/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -0
  186. package/lib/{builtin → eth/builtin}/internal/factories/ERC20__factory.d.ts +1 -1
  187. package/lib/{builtin → eth/builtin}/internal/factories/ERC20__factory.js +0 -0
  188. package/lib/eth/builtin/internal/factories/ERC20__factory.js.map +1 -0
  189. package/lib/{builtin → eth/builtin}/internal/factories/ERC721__factory.d.ts +1 -1
  190. package/lib/{builtin → eth/builtin}/internal/factories/ERC721__factory.js +0 -0
  191. package/lib/eth/builtin/internal/factories/ERC721__factory.js.map +1 -0
  192. package/lib/{builtin → eth/builtin}/internal/factories/WETH9__factory.d.ts +1 -1
  193. package/lib/{builtin → eth/builtin}/internal/factories/WETH9__factory.js +0 -0
  194. package/lib/eth/builtin/internal/factories/WETH9__factory.js.map +1 -0
  195. package/lib/{builtin → eth/builtin}/internal/factories/index.d.ts +0 -0
  196. package/lib/{builtin → eth/builtin}/internal/factories/index.js +0 -0
  197. package/lib/eth/builtin/internal/factories/index.js.map +1 -0
  198. package/lib/{builtin → eth/builtin}/internal/index.d.ts +0 -0
  199. package/lib/{builtin → eth/builtin}/internal/index.js +0 -0
  200. package/lib/eth/builtin/internal/index.js.map +1 -0
  201. package/lib/{builtin → eth/builtin}/internal/weth9_processor.d.ts +5 -5
  202. package/lib/{builtin → eth/builtin}/internal/weth9_processor.js +32 -62
  203. package/lib/eth/builtin/internal/weth9_processor.js.map +1 -0
  204. package/lib/{builtin → eth/builtin}/weth9/index.d.ts +0 -0
  205. package/lib/{builtin → eth/builtin}/weth9/index.js +0 -0
  206. package/lib/eth/builtin/weth9/index.js.map +1 -0
  207. package/lib/{builtin → eth/builtin}/weth9/test-utils.d.ts +0 -0
  208. package/lib/{builtin → eth/builtin}/weth9/test-utils.js +0 -0
  209. package/lib/eth/builtin/weth9/test-utils.js.map +1 -0
  210. package/lib/eth/codegen/codegen.d.ts +1 -0
  211. package/lib/eth/codegen/codegen.js +53 -0
  212. package/lib/eth/codegen/codegen.js.map +1 -0
  213. package/lib/{target-ethers-sentio/index.d.cts → eth/codegen/ethers-sentio.d.ts} +1 -1
  214. package/lib/eth/codegen/ethers-sentio.js +57 -0
  215. package/lib/eth/codegen/ethers-sentio.js.map +1 -0
  216. package/lib/{target-ethers-sentio/event-handler.d.cts → eth/codegen/event-handler.d.ts} +0 -0
  217. package/lib/eth/codegen/event-handler.js +46 -0
  218. package/lib/eth/codegen/event-handler.js.map +1 -0
  219. package/lib/{target-ethers-sentio/file.d.cts → eth/codegen/file.d.ts} +0 -0
  220. package/lib/{target-ethers-sentio/file.cjs → eth/codegen/file.js} +28 -35
  221. package/lib/eth/codegen/file.js.map +1 -0
  222. package/lib/{target-ethers-sentio/functions-handler.d.cts → eth/codegen/functions-handler.d.ts} +0 -0
  223. package/lib/{target-ethers-sentio/functions-handler.cjs → eth/codegen/functions-handler.js} +13 -18
  224. package/lib/eth/codegen/functions-handler.js.map +1 -0
  225. package/lib/eth/codegen/index.d.ts +1 -0
  226. package/lib/eth/codegen/index.js +2 -0
  227. package/lib/eth/codegen/index.js.map +1 -0
  228. package/lib/eth/codegen/run.d.ts +2 -0
  229. package/lib/eth/codegen/run.js +12 -0
  230. package/lib/eth/codegen/run.js.map +1 -0
  231. package/lib/{target-ethers-sentio/types.d.cts → eth/codegen/types.d.ts} +0 -0
  232. package/lib/{target-ethers-sentio/types.cjs → eth/codegen/types.js} +4 -10
  233. package/lib/eth/codegen/types.js.map +1 -0
  234. package/lib/{target-ethers-sentio/view-function.d.cts → eth/codegen/view-function.d.ts} +0 -0
  235. package/lib/eth/codegen/view-function.js +62 -0
  236. package/lib/eth/codegen/view-function.js.map +1 -0
  237. package/lib/{core → eth}/context.d.ts +5 -4
  238. package/lib/{core → eth}/context.js +7 -8
  239. package/lib/eth/context.js.map +1 -0
  240. package/lib/eth/error.d.ts +1 -0
  241. package/lib/eth/error.js +3 -0
  242. package/lib/eth/error.js.map +1 -0
  243. package/lib/eth/eth.d.ts +13 -0
  244. package/lib/{error.js → eth/eth.js} +20 -14
  245. package/lib/eth/eth.js.map +1 -0
  246. package/lib/eth/generic-processor.d.ts +2 -2
  247. package/lib/eth/generic-processor.js +2 -2
  248. package/lib/eth/generic-processor.js.map +1 -1
  249. package/lib/eth/generic-processor.test.js.map +1 -1
  250. package/lib/eth/index.d.ts +5 -1
  251. package/lib/eth/index.js +5 -1
  252. package/lib/eth/index.js.map +1 -1
  253. package/lib/eth/provider.js +3 -2
  254. package/lib/eth/provider.js.map +1 -1
  255. package/lib/index.d.ts +1 -3
  256. package/lib/index.js +1 -5
  257. package/lib/index.js.map +1 -1
  258. package/lib/jest.config.d.ts +9 -0
  259. package/lib/jest.config.js +9 -0
  260. package/lib/jest.config.js.map +1 -0
  261. package/lib/solana/builtin/index.d.ts +1 -0
  262. package/lib/solana/builtin/index.js +2 -0
  263. package/lib/solana/builtin/index.js.map +1 -0
  264. package/lib/solana/builtin/spl-token-processor.d.ts +39 -0
  265. package/lib/solana/builtin/spl-token-processor.js +254 -0
  266. package/lib/solana/builtin/spl-token-processor.js.map +1 -0
  267. package/lib/solana/builtin/types.d.ts +427 -0
  268. package/lib/solana/builtin/types.js +200 -0
  269. package/lib/solana/builtin/types.js.map +1 -0
  270. package/lib/solana/codegen/codegen.d.ts +1 -0
  271. package/lib/solana/codegen/codegen.js +122 -0
  272. package/lib/solana/codegen/codegen.js.map +1 -0
  273. package/lib/solana/codegen/index.d.ts +1 -0
  274. package/lib/solana/codegen/index.js +2 -0
  275. package/lib/solana/codegen/index.js.map +1 -0
  276. package/lib/solana/codegen/run.d.ts +2 -0
  277. package/lib/solana/codegen/run.js +12 -0
  278. package/lib/solana/codegen/run.js.map +1 -0
  279. package/lib/solana/index.d.ts +4 -0
  280. package/lib/solana/index.js +5 -0
  281. package/lib/solana/index.js.map +1 -0
  282. package/lib/solana/solana-context.d.ts +9 -0
  283. package/lib/solana/solana-context.js +28 -0
  284. package/lib/solana/solana-context.js.map +1 -0
  285. package/lib/solana/solana-options.d.ts +10 -0
  286. package/lib/solana/solana-options.js +10 -0
  287. package/lib/solana/solana-options.js.map +1 -0
  288. package/lib/solana/solana-plugin.d.ts +9 -0
  289. package/lib/solana/solana-plugin.js +87 -0
  290. package/lib/solana/solana-plugin.js.map +1 -0
  291. package/lib/solana/solana-processor.d.ts +43 -0
  292. package/lib/solana/solana-processor.js +72 -0
  293. package/lib/solana/solana-processor.js.map +1 -0
  294. package/lib/solana/tests/solana.test.d.ts +1 -0
  295. package/lib/solana/tests/solana.test.js.map +1 -0
  296. package/lib/solana/tests/types/basic_1.d.ts +26 -0
  297. package/lib/solana/tests/types/basic_1.js +63 -0
  298. package/lib/solana/tests/types/basic_1.js.map +1 -0
  299. package/lib/solana/tests/types/basic_1_processor.d.ts +21 -0
  300. package/lib/solana/tests/types/basic_1_processor.js +35 -0
  301. package/lib/solana/tests/types/basic_1_processor.js.map +1 -0
  302. package/lib/solana/tests/types/token_bridge.d.ts +29 -0
  303. package/lib/solana/tests/types/token_bridge.js +938 -0
  304. package/lib/solana/tests/types/token_bridge.js.map +1 -0
  305. package/lib/solana/tests/types/token_bridge_processor.d.ts +212 -0
  306. package/lib/solana/tests/types/token_bridge_processor.js +134 -0
  307. package/lib/solana/tests/types/token_bridge_processor.js.map +1 -0
  308. package/lib/solana/tests/wormhole-token-bridge.d.ts +15 -0
  309. package/lib/solana/tests/wormhole-token-bridge.js +79 -0
  310. package/lib/solana/tests/wormhole-token-bridge.js.map +1 -0
  311. package/lib/testing/test-processor-server.js +1 -1
  312. package/lib/testing/test-processor-server.js.map +1 -1
  313. package/lib/testing/test-provider.js +1 -1
  314. package/lib/testing/test-provider.js.map +1 -1
  315. package/lib/tsup.config.ts +3 -0
  316. package/lib/utils/conversion.d.ts +0 -5
  317. package/lib/utils/conversion.js +21 -20
  318. package/lib/utils/conversion.js.map +1 -1
  319. package/lib/utils/dex-price.js +2 -2
  320. package/lib/utils/dex-price.js.map +1 -1
  321. package/lib/utils/index.d.ts +3 -3
  322. package/lib/utils/index.js +3 -3
  323. package/lib/utils/index.js.map +1 -1
  324. package/lib/utils/token.d.ts +0 -1
  325. package/lib/utils/token.js +17 -28
  326. package/lib/utils/token.js.map +1 -1
  327. package/package.json +42 -20
  328. package/src/aptos/abis/0x1.json +9205 -0
  329. package/src/aptos/abis/0x3.json +1515 -0
  330. package/src/aptos/api.ts +23 -0
  331. package/src/aptos/aptos-plugin.ts +183 -0
  332. package/src/aptos/aptos-processor.ts +331 -0
  333. package/src/aptos/builtin/0x1.ts +4685 -0
  334. package/src/aptos/builtin/0x3.ts +1010 -0
  335. package/src/aptos/builtin/index.ts +5 -0
  336. package/src/aptos/codegen/codegen.ts +461 -0
  337. package/src/aptos/codegen/index.ts +1 -0
  338. package/src/aptos/codegen/run.ts +13 -0
  339. package/src/aptos/codegen/tsconfig.json +8 -0
  340. package/src/aptos/codegen/typegen.ts +165 -0
  341. package/src/aptos/context.ts +72 -0
  342. package/src/aptos/index.ts +10 -0
  343. package/src/aptos/models.ts +37 -0
  344. package/src/aptos/move-coder.ts +199 -0
  345. package/src/aptos/move-types.ts +11 -0
  346. package/src/aptos/network.ts +29 -0
  347. package/src/aptos/tests/abis/reserved.json +402 -0
  348. package/src/aptos/tests/abis/soffl3.json +1411 -0
  349. package/src/aptos/tests/abis/souffle.json +389 -0
  350. package/src/aptos/tests/souffl3.ts +57 -0
  351. package/src/aptos/tests/types/index.ts +6 -0
  352. package/src/aptos/tests/types/reserved.ts +781 -0
  353. package/src/aptos/tests/types/soffl3.ts +1567 -0
  354. package/src/aptos/tests/types/souffle.ts +780 -0
  355. package/src/aptos/types.ts +149 -0
  356. package/src/aptos/utils.ts +26 -0
  357. package/src/core/big-decimal.ts +11 -0
  358. package/src/{utils → core}/chain.ts +0 -0
  359. package/src/core/index.ts +2 -5
  360. package/src/core/numberish.ts +0 -11
  361. package/src/core/sui-plugin.ts +1 -1
  362. package/src/core/sui-processor.ts +1 -1
  363. package/src/{abis → eth/abis}/EACAggregatorProxy.json +0 -0
  364. package/src/{abis → eth/abis}/ERC1155.json +0 -0
  365. package/src/{abis → eth/abis}/ERC20.json +0 -0
  366. package/src/{abis → eth/abis}/ERC20Bytes.json +0 -0
  367. package/src/{abis → eth/abis}/ERC721.json +0 -0
  368. package/src/{abis → eth/abis}/WETH9.json +0 -0
  369. package/src/eth/account-processor.ts +7 -7
  370. package/src/eth/base-processor-template.ts +5 -4
  371. package/src/eth/base-processor.ts +10 -20
  372. package/src/{core → eth}/bind-options.ts +0 -0
  373. package/src/eth/binds.ts +2 -2
  374. package/src/{builtin → eth/builtin}/eacaggregatorproxy/index.ts +0 -0
  375. package/src/{builtin → eth/builtin}/eacaggregatorproxy/test-utils.ts +0 -0
  376. package/src/{builtin → eth/builtin}/erc1155/index.ts +0 -0
  377. package/src/{builtin → eth/builtin}/erc1155/test-utils.ts +0 -0
  378. package/src/{builtin → eth/builtin}/erc20/index.ts +0 -0
  379. package/src/{builtin → eth/builtin}/erc20/test-utils.ts +0 -0
  380. package/src/{builtin → eth/builtin}/erc20bytes/index.ts +0 -0
  381. package/src/{builtin → eth/builtin}/erc20bytes/test-utils.ts +0 -0
  382. package/src/{builtin → eth/builtin}/erc721/index.ts +0 -0
  383. package/src/{builtin → eth/builtin}/erc721/test-utils.ts +0 -0
  384. package/src/{builtin → eth/builtin}/index.ts +0 -0
  385. package/src/{builtin → eth/builtin}/internal/EACAggregatorProxy.ts +5 -9
  386. package/src/{builtin → eth/builtin}/internal/ERC1155.ts +5 -9
  387. package/src/{builtin → eth/builtin}/internal/ERC20.ts +4 -7
  388. package/src/{builtin → eth/builtin}/internal/ERC20Bytes.ts +3 -5
  389. package/src/{builtin → eth/builtin}/internal/ERC721.ts +4 -7
  390. package/src/{builtin → eth/builtin}/internal/WETH9.ts +5 -9
  391. package/src/eth/builtin/internal/common.ts +22 -0
  392. package/src/{builtin → eth/builtin}/internal/eacaggregatorproxy_processor.ts +92 -164
  393. package/src/{builtin → eth/builtin}/internal/erc1155_processor.ts +27 -51
  394. package/src/{builtin → eth/builtin}/internal/erc20_processor.ts +42 -74
  395. package/src/{builtin → eth/builtin}/internal/erc20bytes_processor.ts +32 -56
  396. package/src/{builtin → eth/builtin}/internal/erc721_processor.ts +47 -83
  397. package/src/{builtin → eth/builtin}/internal/factories/EACAggregatorProxy__factory.ts +1 -1
  398. package/src/{builtin → eth/builtin}/internal/factories/ERC1155__factory.ts +1 -1
  399. package/src/{builtin → eth/builtin}/internal/factories/ERC20Bytes__factory.ts +1 -1
  400. package/src/{builtin → eth/builtin}/internal/factories/ERC20__factory.ts +1 -1
  401. package/src/{builtin → eth/builtin}/internal/factories/ERC721__factory.ts +1 -1
  402. package/src/{builtin → eth/builtin}/internal/factories/WETH9__factory.ts +1 -1
  403. package/src/{builtin → eth/builtin}/internal/factories/index.ts +0 -0
  404. package/src/{builtin → eth/builtin}/internal/index.ts +0 -0
  405. package/src/{builtin → eth/builtin}/internal/weth9_processor.ts +32 -56
  406. package/src/{builtin → eth/builtin}/weth9/index.ts +0 -0
  407. package/src/{builtin → eth/builtin}/weth9/test-utils.ts +0 -0
  408. package/src/eth/codegen/codegen.ts +62 -0
  409. package/src/{target-ethers-sentio/index.cts → eth/codegen/ethers-sentio.ts} +2 -2
  410. package/src/{target-ethers-sentio/event-handler.cts → eth/codegen/event-handler.ts} +2 -2
  411. package/src/{target-ethers-sentio/file.cts → eth/codegen/file.ts} +7 -7
  412. package/src/{target-ethers-sentio/functions-handler.cts → eth/codegen/functions-handler.ts} +4 -4
  413. package/src/eth/codegen/index.ts +1 -0
  414. package/src/eth/codegen/run.ts +12 -0
  415. package/src/eth/codegen/tsconfig.json +8 -0
  416. package/src/{target-ethers-sentio/types.cts → eth/codegen/types.ts} +1 -1
  417. package/src/{target-ethers-sentio/view-function.cts → eth/codegen/view-function.ts} +7 -12
  418. package/src/{core → eth}/context.ts +8 -9
  419. package/src/eth/error.ts +4 -0
  420. package/src/eth/eth.ts +56 -0
  421. package/src/eth/generic-processor.ts +3 -3
  422. package/src/eth/index.ts +6 -2
  423. package/src/eth/provider.ts +4 -3
  424. package/src/index.ts +1 -6
  425. package/src/jest.config.ts +8 -0
  426. package/src/solana/builtin/index.ts +1 -0
  427. package/src/solana/builtin/spl-token-processor.ts +298 -0
  428. package/src/solana/builtin/types.ts +279 -0
  429. package/src/solana/codegen/codegen.ts +140 -0
  430. package/src/solana/codegen/index.ts +1 -0
  431. package/src/solana/codegen/run.ts +12 -0
  432. package/src/solana/codegen/tsconfig.json +8 -0
  433. package/src/solana/index.ts +4 -0
  434. package/src/solana/solana-context.ts +30 -0
  435. package/src/solana/solana-options.ts +11 -0
  436. package/src/solana/solana-plugin.ts +103 -0
  437. package/src/solana/solana-processor.ts +102 -0
  438. package/src/solana/tests/abis/basic_1.json +62 -0
  439. package/src/solana/tests/abis/token_bridge.json +937 -0
  440. package/src/solana/tests/types/basic_1.ts +62 -0
  441. package/src/solana/tests/types/basic_1_processor.ts +42 -0
  442. package/src/solana/tests/types/token_bridge.ts +937 -0
  443. package/src/solana/tests/types/token_bridge_processor.ts +150 -0
  444. package/src/solana/tests/wormhole-token-bridge.ts +96 -0
  445. package/src/testing/test-processor-server.ts +1 -1
  446. package/src/testing/test-provider.ts +1 -1
  447. package/src/tsup.config.ts +3 -0
  448. package/src/utils/conversion.ts +21 -25
  449. package/src/utils/dex-price.ts +2 -3
  450. package/src/utils/index.ts +3 -3
  451. package/src/utils/token.ts +19 -30
  452. package/lib/builtin/eacaggregatorproxy/index.js.map +0 -1
  453. package/lib/builtin/eacaggregatorproxy/test-utils.js.map +0 -1
  454. package/lib/builtin/erc1155/index.js.map +0 -1
  455. package/lib/builtin/erc1155/test-utils.js.map +0 -1
  456. package/lib/builtin/erc20/index.js.map +0 -1
  457. package/lib/builtin/erc20/test-utils.js.map +0 -1
  458. package/lib/builtin/erc20bytes/index.js.map +0 -1
  459. package/lib/builtin/erc20bytes/test-utils.js.map +0 -1
  460. package/lib/builtin/erc721/index.js.map +0 -1
  461. package/lib/builtin/erc721/test-utils.js.map +0 -1
  462. package/lib/builtin/index.js.map +0 -1
  463. package/lib/builtin/internal/EACAggregatorProxy.js.map +0 -1
  464. package/lib/builtin/internal/ERC1155.js.map +0 -1
  465. package/lib/builtin/internal/ERC20.js.map +0 -1
  466. package/lib/builtin/internal/ERC20Bytes.js.map +0 -1
  467. package/lib/builtin/internal/ERC721.js.map +0 -1
  468. package/lib/builtin/internal/WETH9.js.map +0 -1
  469. package/lib/builtin/internal/common.js.map +0 -1
  470. package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +0 -1
  471. package/lib/builtin/internal/erc1155_processor.js.map +0 -1
  472. package/lib/builtin/internal/erc20_processor.js.map +0 -1
  473. package/lib/builtin/internal/erc20bytes_processor.js.map +0 -1
  474. package/lib/builtin/internal/erc721_processor.js.map +0 -1
  475. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +0 -1
  476. package/lib/builtin/internal/factories/ERC1155__factory.js.map +0 -1
  477. package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +0 -1
  478. package/lib/builtin/internal/factories/ERC20__factory.js.map +0 -1
  479. package/lib/builtin/internal/factories/ERC721__factory.js.map +0 -1
  480. package/lib/builtin/internal/factories/WETH9__factory.js.map +0 -1
  481. package/lib/builtin/internal/factories/index.js.map +0 -1
  482. package/lib/builtin/internal/index.js.map +0 -1
  483. package/lib/builtin/internal/weth9_processor.js.map +0 -1
  484. package/lib/builtin/weth9/index.js.map +0 -1
  485. package/lib/builtin/weth9/test-utils.js.map +0 -1
  486. package/lib/core/bind-options.js.map +0 -1
  487. package/lib/core/context.js.map +0 -1
  488. package/lib/error.d.ts +0 -7
  489. package/lib/error.js.map +0 -1
  490. package/lib/target-ethers-sentio/event-handler.cjs +0 -52
  491. package/lib/target-ethers-sentio/event-handler.cjs.map +0 -1
  492. package/lib/target-ethers-sentio/file.cjs.map +0 -1
  493. package/lib/target-ethers-sentio/functions-handler.cjs.map +0 -1
  494. package/lib/target-ethers-sentio/index.cjs +0 -61
  495. package/lib/target-ethers-sentio/index.cjs.map +0 -1
  496. package/lib/target-ethers-sentio/types.cjs.map +0 -1
  497. package/lib/target-ethers-sentio/view-function.cjs +0 -74
  498. package/lib/target-ethers-sentio/view-function.cjs.map +0 -1
  499. package/lib/utils/chain.js.map +0 -1
  500. package/src/builtin/internal/common.ts +0 -46
  501. package/src/error.ts +0 -45
  502. package/src/target-ethers-sentio/.eslintrc.json +0 -14
  503. package/src/target-ethers-sentio/tsconfig.json +0 -9
@@ -0,0 +1,23 @@
1
+ import { AptosQueryClient, AptosQueryDefinition } from '@sentio/protos/chainquery'
2
+ import { createChannel, createClientFactory } from 'nice-grpc'
3
+ import { Endpoints } from '@sentio/runtime'
4
+ import { retryMiddleware } from 'nice-grpc-client-middleware-retry'
5
+ import { AptosClient } from 'aptos-sdk'
6
+ import { AptosNetwork, getChainId } from './network.js'
7
+
8
+ export function getChainQueryClient(address?: string): AptosQueryClient {
9
+ if (!address) {
10
+ address = Endpoints.INSTANCE.chainQueryAPI
11
+ }
12
+ const channel = createChannel(address)
13
+
14
+ return createClientFactory().use(retryMiddleware).create(AptosQueryDefinition, channel)
15
+ }
16
+
17
+ export function getAptosClient(network = AptosNetwork.MAIN_NET): AptosClient | undefined {
18
+ const chainServer = Endpoints.INSTANCE.chainServer.get(getChainId(network))
19
+ if (chainServer) {
20
+ return new AptosClient(chainServer)
21
+ }
22
+ return undefined
23
+ }
@@ -0,0 +1,183 @@
1
+ import { Plugin, PluginManager, errorString, mergeProcessResults, USER_PROCESSOR } from '@sentio/runtime'
2
+ import {
3
+ AccountConfig,
4
+ AptosCallHandlerConfig,
5
+ AptosEventHandlerConfig,
6
+ ContractConfig,
7
+ Data_AptCall,
8
+ Data_AptEvent,
9
+ Data_AptResource,
10
+ DataBinding,
11
+ HandlerType,
12
+ ProcessConfigResponse,
13
+ ProcessResult,
14
+ } from '@sentio/protos'
15
+
16
+ import { ServerError, Status } from 'nice-grpc'
17
+
18
+ import { AptosAccountProcessorState, AptosProcessorState } from './aptos-processor.js'
19
+
20
+ export class AptosPlugin extends Plugin {
21
+ name: string = 'AptosPlugin'
22
+
23
+ private aptosEventHandlers: ((event: Data_AptEvent) => Promise<ProcessResult>)[] = []
24
+ private aptosCallHandlers: ((func: Data_AptCall) => Promise<ProcessResult>)[] = []
25
+ private aptosResourceHandlers: ((resourceWithVersion: Data_AptResource) => Promise<ProcessResult>)[] = []
26
+
27
+ async configure(config: ProcessConfigResponse) {
28
+ for (const aptosProcessor of AptosProcessorState.INSTANCE.getValues()) {
29
+ const contractConfig: ContractConfig = {
30
+ transactionConfig: [],
31
+ processorType: USER_PROCESSOR,
32
+ contract: {
33
+ name: aptosProcessor.moduleName,
34
+ chainId: aptosProcessor.getChainId(),
35
+ address: aptosProcessor.config.address,
36
+ abi: '',
37
+ },
38
+ intervalConfigs: [],
39
+ logConfigs: [],
40
+ traceConfigs: [],
41
+ startBlock: aptosProcessor.config.startVersion,
42
+ endBlock: 0n,
43
+ instructionConfig: undefined,
44
+ aptosEventConfigs: [],
45
+ aptosCallConfigs: [],
46
+ }
47
+ // 1. Prepare event handlers
48
+ for (const handler of aptosProcessor.eventHandlers) {
49
+ const handlerId = this.aptosEventHandlers.push(handler.handler) - 1
50
+ const eventHandlerConfig: AptosEventHandlerConfig = {
51
+ filters: handler.filters.map((f) => {
52
+ return {
53
+ type: f.type,
54
+ account: f.account || '',
55
+ }
56
+ }),
57
+ fetchConfig: handler.fetchConfig,
58
+ handlerId,
59
+ }
60
+ contractConfig.aptosEventConfigs.push(eventHandlerConfig)
61
+ }
62
+
63
+ // 2. Prepare function handlers
64
+ for (const handler of aptosProcessor.callHandlers) {
65
+ const handlerId = this.aptosCallHandlers.push(handler.handler) - 1
66
+ const functionHandlerConfig: AptosCallHandlerConfig = {
67
+ filters: handler.filters.map((filter) => {
68
+ return {
69
+ function: filter.function,
70
+ typeArguments: filter.typeArguments || [],
71
+ withTypeArguments: !!filter.typeArguments,
72
+ includeFailed: filter.includeFailed || false,
73
+ }
74
+ }),
75
+ fetchConfig: handler.fetchConfig,
76
+ handlerId,
77
+ }
78
+ contractConfig.aptosCallConfigs.push(functionHandlerConfig)
79
+ }
80
+ config.contractConfigs.push(contractConfig)
81
+ }
82
+
83
+ for (const aptosProcessor of AptosAccountProcessorState.INSTANCE.getValues()) {
84
+ const accountConfig: AccountConfig = {
85
+ address: aptosProcessor.config.address,
86
+ chainId: aptosProcessor.getChainId(),
87
+ startBlock: aptosProcessor.config.startVersion,
88
+ aptosIntervalConfigs: [],
89
+ intervalConfigs: [],
90
+ logConfigs: [],
91
+ }
92
+ for (const handler of aptosProcessor.resourcesHandlers) {
93
+ const handlerId = this.aptosResourceHandlers.push(handler.handler) - 1
94
+ accountConfig.aptosIntervalConfigs.push({
95
+ intervalConfig: {
96
+ handlerId: handlerId,
97
+ minutes: 0,
98
+ minutesInterval: handler.timeIntervalInMinutes,
99
+ slot: 0,
100
+ slotInterval: handler.versionInterval,
101
+ },
102
+ type: handler.type || '',
103
+ })
104
+ }
105
+ config.accountConfigs.push(accountConfig)
106
+ }
107
+ }
108
+
109
+ supportedHandlers = [HandlerType.APT_CALL, HandlerType.APT_RESOURCE, HandlerType.APT_EVENT]
110
+
111
+ async processBinding(request: DataBinding): Promise<ProcessResult> {
112
+ switch (request.handlerType) {
113
+ case HandlerType.APT_CALL:
114
+ return this.processAptosFunctionCall(request)
115
+ case HandlerType.APT_EVENT:
116
+ return this.processAptosEvent(request)
117
+ case HandlerType.APT_RESOURCE:
118
+ return this.processAptosResource(request)
119
+ default:
120
+ throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)
121
+ }
122
+ }
123
+
124
+ async processAptosEvent(binding: DataBinding): Promise<ProcessResult> {
125
+ if (!binding.data?.aptEvent) {
126
+ throw new ServerError(Status.INVALID_ARGUMENT, "Event can't be empty")
127
+ }
128
+ const promises: Promise<ProcessResult>[] = []
129
+ const event = binding.data.aptEvent
130
+
131
+ for (const handlerId of binding.handlerIds) {
132
+ // only support aptos event for now
133
+ promises.push(
134
+ this.aptosEventHandlers[handlerId](event).catch((e) => {
135
+ throw new ServerError(
136
+ Status.INTERNAL,
137
+ 'error processing event: ' + JSON.stringify(event) + '\n' + errorString(e)
138
+ )
139
+ })
140
+ )
141
+ }
142
+ return mergeProcessResults(await Promise.all(promises))
143
+ }
144
+
145
+ async processAptosResource(binding: DataBinding): Promise<ProcessResult> {
146
+ if (!binding.data?.aptResource) {
147
+ throw new ServerError(Status.INVALID_ARGUMENT, "Resource can't be empty")
148
+ }
149
+ const resource = binding.data.aptResource
150
+
151
+ const promises: Promise<ProcessResult>[] = []
152
+ for (const handlerId of binding.handlerIds) {
153
+ promises.push(
154
+ this.aptosResourceHandlers[handlerId](resource).catch((e) => {
155
+ throw new ServerError(
156
+ Status.INTERNAL,
157
+ 'error processing resource: ' + JSON.stringify(resource) + '\n' + errorString(e)
158
+ )
159
+ })
160
+ )
161
+ }
162
+ return mergeProcessResults(await Promise.all(promises))
163
+ }
164
+
165
+ async processAptosFunctionCall(binding: DataBinding): Promise<ProcessResult> {
166
+ if (!binding.data?.aptCall) {
167
+ throw new ServerError(Status.INVALID_ARGUMENT, "Call can't be empty")
168
+ }
169
+ const call = binding.data.aptCall
170
+
171
+ const promises: Promise<ProcessResult>[] = []
172
+ for (const handlerId of binding.handlerIds) {
173
+ // only support aptos call for now
174
+ const promise = this.aptosCallHandlers[handlerId](call).catch((e) => {
175
+ throw new ServerError(Status.INTERNAL, 'error processing call: ' + JSON.stringify(call) + '\n' + errorString(e))
176
+ })
177
+ promises.push(promise)
178
+ }
179
+ return mergeProcessResults(await Promise.all(promises))
180
+ }
181
+ }
182
+
183
+ PluginManager.INSTANCE.register(new AptosPlugin())
@@ -0,0 +1,331 @@
1
+ import { MoveResource, Transaction_UserTransaction, TransactionPayload_EntryFunctionPayload } from './move-types.js'
2
+
3
+ import { MOVE_CODER, MoveCoder } from './move-coder.js'
4
+ import { AptosBindOptions, AptosNetwork, getChainId } from './network.js'
5
+ import { AptosContext, AptosResourceContext } from './context.js'
6
+ import { EventInstance } from './models.js'
7
+ import { ListStateStorage } from '@sentio/runtime'
8
+ import {
9
+ AptosFetchConfig,
10
+ Data_AptCall,
11
+ Data_AptEvent,
12
+ Data_AptResource,
13
+ HandleInterval,
14
+ ProcessResult,
15
+ } from '@sentio/protos'
16
+ import { ServerError, Status } from 'nice-grpc'
17
+
18
+ type IndexConfigure = {
19
+ address: string
20
+ network: AptosNetwork
21
+ startVersion: bigint
22
+ // endSeqNumber?: Long
23
+ }
24
+
25
+ // TODO extends ArgumentsFilter
26
+ export interface EventFilter {
27
+ type: string
28
+ account?: string
29
+ }
30
+
31
+ export interface FunctionNameAndCallFilter extends CallFilter {
32
+ function: string
33
+ }
34
+
35
+ // TODO extends ArgumentsFilter
36
+ export interface CallFilter {
37
+ includeFailed?: boolean
38
+ typeArguments?: string[]
39
+ }
40
+
41
+ export interface ArgumentsFilter {
42
+ arguments?: string[]
43
+ }
44
+
45
+ class EventHandler {
46
+ filters: EventFilter[]
47
+ handler: (event: Data_AptEvent) => Promise<ProcessResult>
48
+ fetchConfig: AptosFetchConfig
49
+ }
50
+
51
+ class CallHandler {
52
+ filters: FunctionNameAndCallFilter[]
53
+ handler: (call: Data_AptCall) => Promise<ProcessResult>
54
+ fetchConfig: AptosFetchConfig
55
+ }
56
+
57
+ class ResourceHandlder {
58
+ type?: string
59
+ versionInterval?: HandleInterval
60
+ timeIntervalInMinutes?: HandleInterval
61
+ handler: (resource: Data_AptResource) => Promise<ProcessResult>
62
+ }
63
+
64
+ export class AptosProcessorState extends ListStateStorage<AptosBaseProcessor> {
65
+ static INSTANCE = new AptosProcessorState()
66
+ }
67
+
68
+ export class AptosBaseProcessor {
69
+ readonly moduleName: string
70
+ config: IndexConfigure
71
+ eventHandlers: EventHandler[] = []
72
+ callHandlers: CallHandler[] = []
73
+
74
+ constructor(moduleName: string, options: AptosBindOptions) {
75
+ this.moduleName = moduleName
76
+ this.config = configure(options)
77
+ AptosProcessorState.INSTANCE.addValue(this)
78
+ this.loadTypes(MOVE_CODER)
79
+ }
80
+
81
+ // getABI(): MoveModule | undefined {
82
+ // return undefined
83
+ // }
84
+
85
+ public onTransaction(
86
+ handler: (transaction: Transaction_UserTransaction, ctx: AptosContext) => void,
87
+ includedFailed = false,
88
+ fetchConfig?: AptosFetchConfig
89
+ ): AptosBaseProcessor {
90
+ const _fetchConfig = fetchConfig || AptosFetchConfig.fromPartial({})
91
+
92
+ // const address = this.config.address
93
+ // const moduleName = this.moduleName
94
+ const processor = this
95
+ this.callHandlers.push({
96
+ handler: async function (data) {
97
+ if (!data.transaction) {
98
+ throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
99
+ }
100
+ const call = data.transaction as Transaction_UserTransaction
101
+ const ctx = new AptosContext(
102
+ processor.moduleName,
103
+ processor.config.network,
104
+ processor.config.address,
105
+ BigInt(data.transaction.version),
106
+ call
107
+ )
108
+ await handler(call, ctx)
109
+ return ctx.getProcessResult()
110
+ },
111
+ filters: [{ function: '', includeFailed: includedFailed }],
112
+ fetchConfig: _fetchConfig,
113
+ })
114
+ return this
115
+ }
116
+
117
+ public onEvent(
118
+ handler: (event: EventInstance, ctx: AptosContext) => void,
119
+ filter: EventFilter | EventFilter[],
120
+ fetchConfig?: AptosFetchConfig
121
+ ): AptosBaseProcessor {
122
+ let _filters: EventFilter[] = []
123
+ const _fetchConfig = fetchConfig || AptosFetchConfig.fromPartial({})
124
+
125
+ if (Array.isArray(filter)) {
126
+ _filters = filter
127
+ } else {
128
+ _filters.push(filter)
129
+ }
130
+
131
+ // const address = this.config.address
132
+ // const moduleName = this.moduleName
133
+
134
+ const processor = this
135
+
136
+ this.eventHandlers.push({
137
+ handler: async function (data) {
138
+ if (!data.transaction) {
139
+ throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')
140
+ }
141
+ const txn = data.transaction as Transaction_UserTransaction
142
+ if (!txn.events.length) {
143
+ throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')
144
+ }
145
+
146
+ const ctx = new AptosContext(
147
+ processor.moduleName,
148
+ processor.config.network,
149
+ processor.config.address,
150
+ BigInt(txn.version),
151
+ txn
152
+ )
153
+
154
+ const events = txn.events
155
+ txn.events = []
156
+ for (const evt of events) {
157
+ const eventInstance = evt as EventInstance
158
+ const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)
159
+ await handler(decoded || eventInstance, ctx)
160
+ }
161
+
162
+ return ctx.getProcessResult()
163
+ },
164
+ filters: _filters,
165
+ fetchConfig: _fetchConfig,
166
+ })
167
+ return this
168
+ }
169
+
170
+ public onEntryFunctionCall(
171
+ handler: (call: TransactionPayload_EntryFunctionPayload, ctx: AptosContext) => void,
172
+ filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],
173
+ fetchConfig?: AptosFetchConfig
174
+ ): AptosBaseProcessor {
175
+ let _filters: FunctionNameAndCallFilter[] = []
176
+ const _fetchConfig = fetchConfig || AptosFetchConfig.fromPartial({})
177
+
178
+ if (Array.isArray(filter)) {
179
+ _filters = filter
180
+ } else {
181
+ _filters.push(filter)
182
+ }
183
+
184
+ // const address = this.config.address
185
+ // const moduleName = this.moduleName
186
+ const processor = this
187
+
188
+ this.callHandlers.push({
189
+ handler: async function (data) {
190
+ if (!data.transaction) {
191
+ throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')
192
+ }
193
+ const tx = data.transaction as Transaction_UserTransaction
194
+
195
+ const ctx = new AptosContext(
196
+ processor.moduleName,
197
+ processor.config.network,
198
+ processor.config.address,
199
+ BigInt(tx.version),
200
+ tx
201
+ )
202
+ if (tx) {
203
+ const payload = tx.payload as TransactionPayload_EntryFunctionPayload
204
+ const decoded = MOVE_CODER.decodeFunctionPayload(payload)
205
+ await handler(decoded, ctx)
206
+ }
207
+ return ctx.getProcessResult()
208
+ },
209
+ filters: _filters,
210
+ fetchConfig: _fetchConfig,
211
+ })
212
+ return this
213
+ }
214
+
215
+ getChainId(): string {
216
+ return getChainId(this.config.network)
217
+ }
218
+
219
+ loadTypes(registry: MoveCoder) {
220
+ if (registry.contains(this.config.address, this.moduleName)) {
221
+ return
222
+ }
223
+ this.loadTypesInternal(registry)
224
+ }
225
+
226
+ protected loadTypesInternal(registry: MoveCoder) {
227
+ // should be override by subclass
228
+ console.log('')
229
+ }
230
+ }
231
+
232
+ export class AptosAccountProcessorState extends ListStateStorage<AptosAccountProcessor> {
233
+ static INSTANCE = new AptosAccountProcessorState()
234
+ }
235
+
236
+ export class AptosAccountProcessor {
237
+ config: IndexConfigure
238
+
239
+ resourcesHandlers: ResourceHandlder[] = []
240
+
241
+ static bind(options: AptosBindOptions): AptosAccountProcessor {
242
+ return new AptosAccountProcessor(options)
243
+ }
244
+
245
+ protected constructor(options: AptosBindOptions) {
246
+ this.config = configure(options)
247
+ AptosAccountProcessorState.INSTANCE.addValue(this)
248
+ }
249
+
250
+ getChainId(): string {
251
+ return getChainId(this.config.network)
252
+ }
253
+
254
+ private onInterval(
255
+ handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,
256
+ timeInterval: HandleInterval | undefined,
257
+ versionInterval: HandleInterval | undefined,
258
+ type: string | undefined
259
+ ) {
260
+ const processor = this
261
+ this.resourcesHandlers.push({
262
+ handler: async function (data) {
263
+ if (data.timestampMicros > Number.MAX_SAFE_INTEGER) {
264
+ throw new ServerError(Status.INVALID_ARGUMENT, 'timestamp is too large')
265
+ }
266
+ const timestamp = Number(data.timestampMicros)
267
+
268
+ const ctx = new AptosResourceContext(
269
+ processor.config.network,
270
+ processor.config.address,
271
+ data.version,
272
+ timestamp
273
+ )
274
+ await handler(data.resources as MoveResource[], ctx)
275
+ return ctx.getProcessResult()
276
+ },
277
+ timeIntervalInMinutes: timeInterval,
278
+ versionInterval: versionInterval,
279
+ type: type,
280
+ })
281
+ return this
282
+ }
283
+
284
+ public onTimeInterval(
285
+ handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,
286
+ timeIntervalInMinutes = 60,
287
+ backfillTimeIntervalInMinutes = 240,
288
+ type?: string
289
+ ) {
290
+ return this.onInterval(
291
+ handler,
292
+ {
293
+ recentInterval: timeIntervalInMinutes,
294
+ backfillInterval: backfillTimeIntervalInMinutes,
295
+ },
296
+ undefined,
297
+ type
298
+ )
299
+ }
300
+
301
+ public onVersionInterval(
302
+ handler: (resources: MoveResource[], ctx: AptosResourceContext) => void,
303
+ versionInterval = 100000,
304
+ backfillVersionInterval = 400000,
305
+ typePrefix?: string
306
+ ) {
307
+ return this.onInterval(
308
+ handler,
309
+ undefined,
310
+ { recentInterval: versionInterval, backfillInterval: backfillVersionInterval },
311
+ typePrefix
312
+ )
313
+ }
314
+ }
315
+
316
+ function configure(options: AptosBindOptions): IndexConfigure {
317
+ let startVersion = 0n
318
+ if (options.startVersion !== undefined) {
319
+ if (typeof options.startVersion === 'number') {
320
+ startVersion = BigInt(options.startVersion)
321
+ } else {
322
+ startVersion = options.startVersion
323
+ }
324
+ }
325
+
326
+ return {
327
+ startVersion: startVersion,
328
+ address: options.address,
329
+ network: options.network || AptosNetwork.MAIN_NET,
330
+ }
331
+ }