@sentio/sdk 2.0.0-rc.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +4 -4
  322. package/lib/utils/index.js +4 -4
  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 +4 -4
  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
@@ -1 +1 @@
1
- {"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,GASZ,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C,OAAO,EAAsC,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAI9E,MAAM,CAAC,MAAM,YAAY,GAA6B,EAAE,CAAA;AAExD,MAAM,UAAU,SAAS;IACvB,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,oBAAoB;AACtB,CAAC;AAED,MAAM,OAAO,mBAAmB;IAC9B,OAAO,CAAsB;IAC7B,eAAe,CAAkB;IACjC,cAAc,CAAiB;IAE/B,YAAY,MAA0B,EAAE,gBAAwC,EAAE;QAChF,SAAS,EAAE,CAAA;QAEX,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAE/C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;YACzB,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACnC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;SAC5C;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAwB,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,YAAY;QACnF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAA;QAC3C,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,OAAc,EAAE,OAAO,GAAG,YAAY;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,SAAS,CAAC,OAA6B,EAAE,OAAO,GAAG,YAAY;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,0GAA0G;IAC1G,sDAAsD;IACtD,IAAI;IACJ,EAAE;IACF,yHAAyH;IACzH,wDAAwD;IACxD,IAAI;IAEJ,SAAS,CAAC,KAAY,EAAE,UAAsB,CAAC;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,UAAU,CAAC,MAAe,EAAE,UAAsB,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACtD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;aAC5D;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACvB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,UAAsB,CAAC;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YAChD,MAAM,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;SAC5D;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAEjD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;gBAC3E,SAAQ;aACT;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE;gBAC/E,SAAQ;aACT;YACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,YAAY,EAAE;gBAC1C,IAAI,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE;oBACjC,OAAO;wBACL,IAAI,EAAE;4BACJ,QAAQ,EAAE;gCACR,KAAK;gCACL,SAAS,EAAE,IAAI,IAAI,EAAE;6BACtB;yBACF;wBACD,UAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;wBAC9B,WAAW,EAAE,WAAW,CAAC,SAAS;qBACnC,CAAA;iBACF;aACF;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,CAAC,GAAc,EAAE,UAAsB,CAAC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,QAAQ,CAAC,IAAiB,EAAE,UAAsB,CAAC;QACjD,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAClD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;aACxD;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACvB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,eAAe,CAAC,GAAc,EAAE,UAAsB,CAAC;QACrD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;gBAC3E,SAAQ;aACT;YACD,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE;gBAC1E,SAAQ;aACT;YACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;oBACnC,mDAAmD;oBACnD,aAAa;oBACb,IAAI;oBAEJ,IAAI,KAAK,GAAG,IAAI,CAAA;oBAChB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;wBACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;wBACrC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;wBACpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,YAAY;4BACZ,SAAQ;yBACT;wBACD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;4BACzE,WAAW;4BACX,SAAQ;yBACT;wBACD,KAAK,GAAG,KAAK,CAAA;wBACb,MAAK;qBACN;oBACD,IAAI,KAAK,EAAE;wBACT,OAAO;4BACL,IAAI,EAAE;gCACJ,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;6BACvC;4BACD,UAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;4BAC9B,WAAW,EAAE,WAAW,CAAC,OAAO;yBACjC,CAAA;qBACF;iBACF;aACF;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,cAAc,CAAC,OAAe,EAAE,GAAc,EAAE,UAAsB,CAAC;QACrE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,IAAiB,EAAE,UAAsB,CAAC;QACzE,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YAClE,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;aACxD;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACvB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,sBAAsB,CAAC,OAAe,EAAE,GAAc,EAAE,UAAsB,CAAC;QAC7E,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE;YACzC,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;gBAChE,SAAQ;aACT;YACD,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;gBAC3D,SAAQ;aACT;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE;gBACvC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;oBACnC,mDAAmD;oBACnD,aAAa;oBACb,IAAI;oBAEJ,IAAI,KAAK,GAAG,IAAI,CAAA;oBAChB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;wBACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;wBACrC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;wBACpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,YAAY;4BACZ,SAAQ;yBACT;wBACD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;4BACzE,WAAW;4BACX,SAAQ;yBACT;wBACD,KAAK,GAAG,KAAK,CAAA;wBACb,MAAK;qBACN;oBACD,IAAI,KAAK,EAAE;wBACT,OAAO;4BACL,IAAI,EAAE;gCACJ,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;6BACvC;4BACD,UAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;4BAC9B,WAAW,EAAE,WAAW,CAAC,OAAO;yBACjC,CAAA;qBACF;iBACF;aACF;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,SAAS,CACP,KAAgD,EAChD,UAAsB,CAAC;QAEvB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,UAAU,CAAC,MAAmD,EAAE,UAAsB,CAAC;QACrF,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACtD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;aAC5D;YACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACvB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,iBAAiB,CAAC,KAA0C,EAAE,UAAsB,CAAC;QACnF,MAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE;gBACJ,QAAQ,EAAE,EAAE,KAAK,EAAE;aACpB;YACD,WAAW,EAAE,WAAW,CAAC,SAAS;YAClC,UAAU,EAAE,EAAE;SACf,CAAA;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;gBAC3E,SAAQ;aACT;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAA;YACpC,IAAI,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE;gBACzC,SAAQ;aACT;YACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,EAAE,IAAI,eAAe,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACpE,SAAQ;aACT;YAED,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE;gBAC7C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;aAC1C;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,gBAAgB,CAAC,YAAmC;QAClD,OAAO,IAAI,CAAC,eAAe,CAAC;YAC1B,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBACzC,OAAO;oBACL,IAAI,EAAE;wBACJ,GAAG,EAAE,IAAI,UAAU,EAAE;wBACrB,cAAc,EAAE,WAAW;qBAC5B;oBACD,UAAU,EAAE,EAAE;oBACd,WAAW,EAAE,WAAW,CAAC,eAAe;iBACzC,CAAA;YACH,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IAED,eAAe,CACb,OAA+B,EAC/B,UAAuB,YAAY;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,qBAAqB,CAAC,OAAmC,EAAE,OAAoB;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;CACF","sourcesContent":["import {\n AccountConfig,\n ContractConfig,\n DataBinding,\n HandlerType,\n Data_SolInstruction,\n ProcessBindingResponse,\n ProcessBindingsRequest,\n ProcessConfigRequest,\n ProcessConfigResponse,\n ProcessorServiceImplementation,\n StartRequest,\n Empty,\n} from '@sentio/protos'\nimport { CallContext } from 'nice-grpc-common'\nimport { ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../utils/chain.js'\n\nimport { Trace } from '../eth/trace.js'\nimport { LogParams, Networkish, BlockParams, Network } from 'ethers/providers'\n\nimport { Block, Log } from 'ethers'\n\nexport const TEST_CONTEXT: CallContext = <CallContext>{}\n\nexport function cleanTest() {\n State.reset()\n // Endpoints.reset()\n}\n\nexport class TestProcessorServer implements ProcessorServiceImplementation {\n service: ProcessorServiceImpl\n contractConfigs: ContractConfig[]\n accountConfigs: AccountConfig[]\n\n constructor(loader: () => Promise<any>, httpEndpoints: Record<string, string> = {}) {\n cleanTest()\n\n this.service = new ProcessorServiceImpl(loader)\n\n for (const k in CHAIN_MAP) {\n const http = httpEndpoints[k] || ''\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n }\n\n async start(request: StartRequest = { templateInstances: [] }, context = TEST_CONTEXT): Promise<Empty> {\n const res = await this.service.start(request, context)\n const config = await this.getConfig({})\n this.contractConfigs = config.contractConfigs\n this.accountConfigs = config.accountConfigs\n return res\n }\n\n stop(request: Empty, context = TEST_CONTEXT): Promise<Empty> {\n return this.service.stop(request, context)\n }\n\n getConfig(request: ProcessConfigRequest, context = TEST_CONTEXT): Promise<ProcessConfigResponse> {\n return this.service.getConfig(request, context)\n }\n\n // processLogs(request: ProcessBindingsRequest, context = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processLogs(request, context)\n // }\n //\n // processTraces(request: ProcessBindingsRequest, context: CallContext = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processTraces(request, context)\n // }\n\n testTrace(trace: Trace, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testTraces([trace], network)\n }\n\n testTraces(traces: Trace[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const trace of traces) {\n const binding = this.buildTraceBinding(trace, network)\n if (!binding) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildTraceBinding(trace: Trace, network: Networkish = 1): DataBinding | undefined {\n if (trace.type !== 'call' || !trace.action.input) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n const signature = trace.action.input.slice(0, 10)\n\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.traceConfigs) {\n if (config.signature == signature) {\n return {\n data: {\n ethTrace: {\n trace,\n timestamp: new Date(),\n },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_TRACE,\n }\n }\n }\n }\n return undefined\n }\n\n testLog(log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testLogs([log], network)\n }\n\n testLogs(logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildLogBinding(log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildLogBinding(log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n testAccountLog(address: string, log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testAccountLogs(address, [log], network)\n }\n\n testAccountLogs(address: string, logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildAccountLogBinding(address, log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildAccountLogBinding(address: string, log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const account of this.accountConfigs) {\n if (account.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (address.toLowerCase() !== account.address.toLowerCase()) {\n continue\n }\n for (const config of account.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testBlock(\n block: Partial<BlockParams> & { number: number },\n network: Networkish = 1\n ): Promise<ProcessBindingResponse> {\n return this.testBlocks([block], network)\n }\n\n testBlocks(blocks: Partial<BlockParams> & { number: number }[], network: Networkish = 1) {\n const bindings = []\n for (const block of blocks) {\n const binding = this.buildBlockBinding(block, network)\n if (!binding) {\n throw Error('Invalid test block: ' + JSON.stringify(block))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildBlockBinding(block: Partial<Block> & { number: number }, network: Networkish = 1): DataBinding {\n const binding: DataBinding = {\n data: {\n ethBlock: { block },\n },\n handlerType: HandlerType.ETH_BLOCK,\n handlerIds: [],\n }\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n const longBlockNumber = block.number\n if (longBlockNumber < contract.startBlock) {\n continue\n }\n if (contract.endBlock !== 0n && longBlockNumber >= contract.endBlock) {\n continue\n }\n\n for (const config of contract.intervalConfigs) {\n binding.handlerIds.push(config.handlerId)\n }\n }\n return binding\n }\n\n testInstructions(instructions: Data_SolInstruction[]): Promise<ProcessBindingResponse> {\n return this.processBindings({\n bindings: instructions.map((instruction) => {\n return {\n data: {\n raw: new Uint8Array(),\n solInstruction: instruction,\n },\n handlerIds: [],\n handlerType: HandlerType.SOL_INSTRUCTION,\n }\n }),\n })\n }\n\n processBindings(\n request: ProcessBindingsRequest,\n context: CallContext = TEST_CONTEXT\n ): Promise<ProcessBindingResponse> {\n return this.service.processBindings(request, context)\n }\n\n processBindingsStream(request: AsyncIterable<DataBinding>, context: CallContext) {\n return this.service.processBindingsStream(request, context)\n }\n}\n"]}
1
+ {"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AccountConfig,\n ContractConfig,\n DataBinding,\n HandlerType,\n Data_SolInstruction,\n ProcessBindingResponse,\n ProcessBindingsRequest,\n ProcessConfigRequest,\n ProcessConfigResponse,\n ProcessorServiceImplementation,\n StartRequest,\n Empty,\n} from '@sentio/protos'\nimport { CallContext } from 'nice-grpc-common'\nimport { ProcessorServiceImpl, Endpoints, State } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../core/chain.js'\n\nimport { Trace } from '../eth/trace.js'\nimport { LogParams, Networkish, BlockParams, Network } from 'ethers/providers'\n\nimport { Block, Log } from 'ethers'\n\nexport const TEST_CONTEXT: CallContext = <CallContext>{}\n\nexport function cleanTest() {\n State.reset()\n // Endpoints.reset()\n}\n\nexport class TestProcessorServer implements ProcessorServiceImplementation {\n service: ProcessorServiceImpl\n contractConfigs: ContractConfig[]\n accountConfigs: AccountConfig[]\n\n constructor(loader: () => Promise<any>, httpEndpoints: Record<string, string> = {}) {\n cleanTest()\n\n this.service = new ProcessorServiceImpl(loader)\n\n for (const k in CHAIN_MAP) {\n const http = httpEndpoints[k] || ''\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n }\n\n async start(request: StartRequest = { templateInstances: [] }, context = TEST_CONTEXT): Promise<Empty> {\n const res = await this.service.start(request, context)\n const config = await this.getConfig({})\n this.contractConfigs = config.contractConfigs\n this.accountConfigs = config.accountConfigs\n return res\n }\n\n stop(request: Empty, context = TEST_CONTEXT): Promise<Empty> {\n return this.service.stop(request, context)\n }\n\n getConfig(request: ProcessConfigRequest, context = TEST_CONTEXT): Promise<ProcessConfigResponse> {\n return this.service.getConfig(request, context)\n }\n\n // processLogs(request: ProcessBindingsRequest, context = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processLogs(request, context)\n // }\n //\n // processTraces(request: ProcessBindingsRequest, context: CallContext = TEST_CONTEXT): Promise<ProcessBindingResponse> {\n // return this.service.processTraces(request, context)\n // }\n\n testTrace(trace: Trace, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testTraces([trace], network)\n }\n\n testTraces(traces: Trace[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const trace of traces) {\n const binding = this.buildTraceBinding(trace, network)\n if (!binding) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildTraceBinding(trace: Trace, network: Networkish = 1): DataBinding | undefined {\n if (trace.type !== 'call' || !trace.action.input) {\n throw Error('Invalid test trace: ' + JSON.stringify(trace))\n }\n const signature = trace.action.input.slice(0, 10)\n\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (trace.action.to?.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.traceConfigs) {\n if (config.signature == signature) {\n return {\n data: {\n ethTrace: {\n trace,\n timestamp: new Date(),\n },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_TRACE,\n }\n }\n }\n }\n return undefined\n }\n\n testLog(log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testLogs([log], network)\n }\n\n testLogs(logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildLogBinding(log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildLogBinding(log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (log.address.toLowerCase() !== contract.contract?.address.toLowerCase()) {\n continue\n }\n for (const config of contract.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n testAccountLog(address: string, log: LogParams, network: Networkish = 1): Promise<ProcessBindingResponse> {\n return this.testAccountLogs(address, [log], network)\n }\n\n testAccountLogs(address: string, logs: LogParams[], network: Networkish = 1): Promise<ProcessBindingResponse> {\n const bindings = []\n for (const log of logs) {\n const binding = this.buildAccountLogBinding(address, log, network)\n if (!binding) {\n throw Error('Invalid test log: ' + JSON.stringify(log))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildAccountLogBinding(address: string, log: LogParams, network: Networkish = 1): DataBinding | undefined {\n for (const account of this.accountConfigs) {\n if (account.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n if (address.toLowerCase() !== account.address.toLowerCase()) {\n continue\n }\n for (const config of account.logConfigs) {\n for (const filter of config.filters) {\n // if (filter.topics.length != log.topics.length) {\n // continue\n // }\n\n let match = true\n for (const topicIdx in filter.topics) {\n const logTopic = log.topics[topicIdx]\n const possibleTopic = filter.topics[topicIdx].hashes\n if (possibleTopic.length === 0) {\n // match all\n continue\n }\n if (possibleTopic.find((e) => e.toLowerCase() === logTopic.toLowerCase())) {\n // find one\n continue\n }\n match = false\n break\n }\n if (match) {\n return {\n data: {\n ethLog: { log, timestamp: new Date() },\n },\n handlerIds: [config.handlerId],\n handlerType: HandlerType.ETH_LOG,\n }\n }\n }\n }\n }\n return undefined\n }\n\n testBlock(\n block: Partial<BlockParams> & { number: number },\n network: Networkish = 1\n ): Promise<ProcessBindingResponse> {\n return this.testBlocks([block], network)\n }\n\n testBlocks(blocks: Partial<BlockParams> & { number: number }[], network: Networkish = 1) {\n const bindings = []\n for (const block of blocks) {\n const binding = this.buildBlockBinding(block, network)\n if (!binding) {\n throw Error('Invalid test block: ' + JSON.stringify(block))\n }\n bindings.push(binding)\n }\n return this.processBindings({\n bindings: bindings,\n })\n }\n\n buildBlockBinding(block: Partial<Block> & { number: number }, network: Networkish = 1): DataBinding {\n const binding: DataBinding = {\n data: {\n ethBlock: { block },\n },\n handlerType: HandlerType.ETH_BLOCK,\n handlerIds: [],\n }\n for (const contract of this.contractConfigs) {\n if (contract.contract?.chainId !== Network.from(network).chainId.toString()) {\n continue\n }\n const longBlockNumber = block.number\n if (longBlockNumber < contract.startBlock) {\n continue\n }\n if (contract.endBlock !== 0n && longBlockNumber >= contract.endBlock) {\n continue\n }\n\n for (const config of contract.intervalConfigs) {\n binding.handlerIds.push(config.handlerId)\n }\n }\n return binding\n }\n\n testInstructions(instructions: Data_SolInstruction[]): Promise<ProcessBindingResponse> {\n return this.processBindings({\n bindings: instructions.map((instruction) => {\n return {\n data: {\n raw: new Uint8Array(),\n solInstruction: instruction,\n },\n handlerIds: [],\n handlerType: HandlerType.SOL_INSTRUCTION,\n }\n }),\n })\n }\n\n processBindings(\n request: ProcessBindingsRequest,\n context: CallContext = TEST_CONTEXT\n ): Promise<ProcessBindingResponse> {\n return this.service.processBindings(request, context)\n }\n\n processBindingsStream(request: AsyncIterable<DataBinding>, context: CallContext) {\n return this.service.processBindingsStream(request, context)\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Endpoints } from '@sentio/runtime';
2
- import { CHAIN_MAP } from '../utils/chain.js';
2
+ import { CHAIN_MAP } from '../core/chain.js';
3
3
  export function loadTestProvidersFromEnv(requiredChainIds) {
4
4
  const found = [];
5
5
  if (!Array.isArray(requiredChainIds)) {
@@ -1 +1 @@
1
- {"version":3,"file":"test-provider.js","sourceRoot":"","sources":["../../src/testing/test-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,MAAM,UAAU,wBAAwB,CAAC,gBAAmC;IAC1E,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACpC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAA;KACtC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACtC,MAAM,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,EAAE;YACT,SAAQ;SACT;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;KAC5C;IAED,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YACvB,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { Endpoints } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../utils/chain.js'\n\nexport function loadTestProvidersFromEnv(requiredChainIds: string[] | string): boolean {\n const found: string[] = []\n\n if (!Array.isArray(requiredChainIds)) {\n requiredChainIds = [requiredChainIds]\n }\n\n for (const k of Object.keys(CHAIN_MAP)) {\n const envKey = 'TEST_ENDPOINT_' + k\n const http = process.env[envKey]\n if (!http) {\n continue\n }\n found.push(k)\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n\n for (const id of requiredChainIds) {\n if (!found.includes(id)) {\n return false\n }\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"test-provider.js","sourceRoot":"","sources":["../../src/testing/test-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,MAAM,UAAU,wBAAwB,CAAC,gBAAmC;IAC1E,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACpC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAA;KACtC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACtC,MAAM,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,EAAE;YACT,SAAQ;SACT;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;KAC5C;IAED,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YACvB,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { Endpoints } from '@sentio/runtime'\nimport { CHAIN_MAP } from '../core/chain.js'\n\nexport function loadTestProvidersFromEnv(requiredChainIds: string[] | string): boolean {\n const found: string[] = []\n\n if (!Array.isArray(requiredChainIds)) {\n requiredChainIds = [requiredChainIds]\n }\n\n for (const k of Object.keys(CHAIN_MAP)) {\n const envKey = 'TEST_ENDPOINT_' + k\n const http = process.env[envKey]\n if (!http) {\n continue\n }\n found.push(k)\n Endpoints.INSTANCE.chainServer.set(k, http)\n }\n\n for (const id of requiredChainIds) {\n if (!found.includes(id)) {\n return false\n }\n }\n return true\n}\n"]}
@@ -13,6 +13,9 @@ export default defineConfig({
13
13
  sourcemap: 'inline',
14
14
  clean: true,
15
15
  format: 'esm',
16
+ dts: {
17
+ resolve: true,
18
+ },
16
19
  external: [
17
20
  'protobufjs',
18
21
  'aptos',
@@ -1,6 +1 @@
1
- import { BigDecimal } from '../core/big-decimal.js';
2
- import { Numberish } from '../core/index.js';
3
- import { MetricValue } from '@sentio/protos';
4
- export declare function toBigDecimal(n: bigint): BigDecimal;
5
1
  export declare function bytesToBigInt(bytes: Uint8Array): bigint;
6
- export declare function metricValueToNumberish(v: MetricValue): Numberish;
@@ -1,7 +1,6 @@
1
- import { BigDecimal } from '../core/big-decimal.js';
2
- export function toBigDecimal(n) {
3
- return new BigDecimal(n.toString());
4
- }
1
+ // import { BigDecimal } from '../core/big-decimal.js'
2
+ // import { Numberish } from '../core/index.js'
3
+ // import { MetricValue } from '@sentio/protos'
5
4
  export function bytesToBigInt(bytes) {
6
5
  let intValue = BigInt(0);
7
6
  for (let i = 0; i < bytes.length; i++) {
@@ -9,20 +8,22 @@ export function bytesToBigInt(bytes) {
9
8
  }
10
9
  return intValue;
11
10
  }
12
- export function metricValueToNumberish(v) {
13
- if (v.doubleValue) {
14
- return v.doubleValue;
15
- }
16
- if (v.bigInteger) {
17
- let intValue = bytesToBigInt(v.bigInteger.data);
18
- if (v.bigInteger.negative) {
19
- intValue = -intValue;
20
- }
21
- return intValue;
22
- }
23
- if (v.bigDecimal) {
24
- return new BigDecimal(v.bigDecimal);
25
- }
26
- throw Error("MetricValue doesn't contain any of possible value");
27
- }
11
+ // export function metricValueToNumberish(v: MetricValue): Numberish {
12
+ // if (v.doubleValue) {
13
+ // return v.doubleValue
14
+ // }
15
+ // if (v.bigInteger) {
16
+ // let intValue = bytesToBigInt(v.bigInteger.data)
17
+ // if (v.bigInteger.negative) {
18
+ // intValue = -intValue
19
+ // }
20
+ // return intValue
21
+ // }
22
+ //
23
+ // if (v.bigDecimal) {
24
+ // return new BigDecimal(v.bigDecimal)
25
+ // }
26
+ //
27
+ // throw Error("MetricValue doesn't contain any of possible value")
28
+ // }
28
29
  //# sourceMappingURL=conversion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACrD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,CAAc;IACnD,IAAI,CAAC,CAAC,WAAW,EAAE;QACjB,OAAO,CAAC,CAAC,WAAW,CAAA;KACrB;IACD,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;YACzB,QAAQ,GAAG,CAAC,QAAQ,CAAA;SACrB;QACD,OAAO,QAAQ,CAAA;KAChB;IAED,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;KACpC;IAED,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAA;AAClE,CAAC","sourcesContent":["import { BigDecimal } from '../core/big-decimal.js'\nimport { Numberish } from '../core/index.js'\nimport { MetricValue } from '@sentio/protos'\n\nexport function toBigDecimal(n: bigint) {\n return new BigDecimal(n.toString())\n}\n\nexport function bytesToBigInt(bytes: Uint8Array) {\n let intValue = BigInt(0)\n for (let i = 0; i < bytes.length; i++) {\n intValue = intValue * BigInt(256) + BigInt(bytes[i])\n }\n return intValue\n}\n\nexport function metricValueToNumberish(v: MetricValue): Numberish {\n if (v.doubleValue) {\n return v.doubleValue\n }\n if (v.bigInteger) {\n let intValue = bytesToBigInt(v.bigInteger.data)\n if (v.bigInteger.negative) {\n intValue = -intValue\n }\n return intValue\n }\n\n if (v.bigDecimal) {\n return new BigDecimal(v.bigDecimal)\n }\n\n throw Error(\"MetricValue doesn't contain any of possible value\")\n}\n"]}
1
+ {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/utils/conversion.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,+CAA+C;AAC/C,+CAA+C;AAE/C,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACrD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,sEAAsE;AACtE,yBAAyB;AACzB,2BAA2B;AAC3B,MAAM;AACN,wBAAwB;AACxB,sDAAsD;AACtD,mCAAmC;AACnC,6BAA6B;AAC7B,QAAQ;AACR,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,wBAAwB;AACxB,0CAA0C;AAC1C,MAAM;AACN,EAAE;AACF,qEAAqE;AACrE,IAAI","sourcesContent":["// import { BigDecimal } from '../core/big-decimal.js'\n// import { Numberish } from '../core/index.js'\n// import { MetricValue } from '@sentio/protos'\n\nexport function bytesToBigInt(bytes: Uint8Array) {\n let intValue = BigInt(0)\n for (let i = 0; i < bytes.length; i++) {\n intValue = intValue * BigInt(256) + BigInt(bytes[i])\n }\n return intValue\n}\n\n// export function metricValueToNumberish(v: MetricValue): Numberish {\n// if (v.doubleValue) {\n// return v.doubleValue\n// }\n// if (v.bigInteger) {\n// let intValue = bytesToBigInt(v.bigInteger.data)\n// if (v.bigInteger.negative) {\n// intValue = -intValue\n// }\n// return intValue\n// }\n//\n// if (v.bigDecimal) {\n// return new BigDecimal(v.bigDecimal)\n// }\n//\n// throw Error(\"MetricValue doesn't contain any of possible value\")\n// }\n"]}
@@ -1,8 +1,8 @@
1
- import { getEACAggregatorProxyContract } from '../builtin/internal/eacaggregatorproxy_processor.js';
1
+ import { getEACAggregatorProxyContract } from '../eth/builtin/internal/eacaggregatorproxy_processor.js';
2
2
  import fs from 'fs';
3
3
  import { parse } from 'csv-parse/sync';
4
- import { scaleDown } from './token.js';
5
4
  import url from 'url';
5
+ import { scaleDown } from '../core/big-decimal.js';
6
6
  export var PriceUnit;
7
7
  (function (PriceUnit) {
8
8
  PriceUnit[PriceUnit["USD"] = 0] = "USD";
@@ -1 +1 @@
1
- {"version":3,"file":"dex-price.js","sourceRoot":"","sources":["../../src/utils/dex-price.ts"],"names":[],"mappings":"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","sourcesContent":["import { getEACAggregatorProxyContract } from '../builtin/internal/eacaggregatorproxy_processor.js'\nimport path from 'path'\nimport fs from 'fs'\nimport { parse } from 'csv-parse/sync'\nimport { BlockTag } from 'ethers/providers'\nimport { scaleDown } from './token.js'\nimport url from 'url'\n\ntype OralceRecord = {\n Pair: string\n Asset: string\n Type: string\n Address: string\n}\n\nexport enum PriceUnit {\n USD = 0,\n ETH = 1,\n BTC = 2,\n}\n\nexport interface DexPriceResult {\n price?: number\n error?: string\n}\n\n// Load price feed from https://docs.chain.link/docs/data-feeds/price-feeds/addresses/?network=ethereum\n// and then use EACAggregatorProxy contract to get price\nclass DexPrice {\n USD_ORACLE_MAP = new Map<string, string>()\n ETH_ORACLE_MAP = new Map<string, string>()\n BTC_ORACLE_MAP = new Map<string, string>()\n ASSETS_INFOS = new Map<string, number>()\n\n readonly chainId: number\n\n constructor(csvFileName: string, chainId: number) {\n this.chainId = chainId\n const csvFilePath = url.fileURLToPath(new URL('./' + csvFileName, import.meta.url))\n const fileContent = fs.readFileSync(csvFilePath, { encoding: 'utf-8' })\n const headers = ['Pair', 'Asset', 'Type', 'Address']\n\n const records: OralceRecord[] = parse(fileContent, {\n delimiter: ',',\n columns: headers,\n skip_empty_lines: true,\n })\n\n for (const record of records) {\n const pair = record.Pair.split('/')\n const asset = pair[0].trim().toLowerCase()\n const target = pair[1].trim().toLowerCase()\n const address = record.Address.toLowerCase()\n if (target === 'usd') {\n this.USD_ORACLE_MAP.set(asset, address)\n } else if (target === 'eth') {\n this.ETH_ORACLE_MAP.set(asset, address)\n } else if (target == 'btc') {\n this.BTC_ORACLE_MAP.set(asset, address)\n } else {\n console.error('wrong asset record:' + JSON.stringify(record))\n }\n\n // console.log(asset, target, address)\n }\n }\n\n // asset: symbol of the asset\n // unit: usd, eth or btc\n // blockTag: blockNumber of block symbol like \"latest\"\n // returns the asset price,\n // throw exception if calling to price feed failed, e.g. due to a invalid block number\n async getPrice(\n asset: string,\n blockTag: BlockTag = 'latest',\n unit: PriceUnit = PriceUnit.USD\n ): Promise<DexPriceResult> {\n // if (chainId !== 1 && chainId !== 5) {\n // return {\n // error: \"current dex price only support chain 1 (mainnet) or 5 (goerli)\"\n // }\n // }\n\n let oracleMap = this.USD_ORACLE_MAP\n switch (unit) {\n case PriceUnit.ETH:\n oracleMap = this.ETH_ORACLE_MAP\n break\n case PriceUnit.BTC:\n oracleMap = this.BTC_ORACLE_MAP\n break\n default:\n }\n\n asset = asset.trim().toLowerCase()\n\n const addr = oracleMap.get(asset)\n if (!addr) {\n return {\n error: 'No price feed found for asset',\n }\n }\n\n const contract = getEACAggregatorProxyContract(addr, this.chainId)\n try {\n const price = await contract.latestAnswer({\n blockTag: blockTag,\n })\n\n let decimal = this.ASSETS_INFOS.get(asset)\n if (!decimal) {\n decimal = Number(await contract.decimals())\n this.ASSETS_INFOS.set(asset, decimal)\n }\n\n return {\n price: scaleDown(price, decimal).toNumber(),\n }\n } catch (e) {\n return {\n error:\n 'Price query error for ' +\n asset +\n ' failed at ' +\n addr +\n ' at chain ' +\n this.chainId +\n '. Details: ' +\n e.toString(),\n }\n }\n }\n}\n\nexport const EthereumDexPrice = new DexPrice('chainlink-oracles.csv', 1)\nexport const GoerliDexPrice = new DexPrice('chainlink-oracles-goerli.csv', 5)\n"]}
1
+ {"version":3,"file":"dex-price.js","sourceRoot":"","sources":["../../src/utils/dex-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAA;AACvG,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AASlD,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,uCAAO,CAAA;IACP,uCAAO,CAAA;IACP,uCAAO,CAAA;AACT,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAOD,uGAAuG;AACvG,wDAAwD;AACxD,MAAM,QAAQ;IACZ,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE/B,OAAO,CAAQ;IAExB,YAAY,WAAmB,EAAE,OAAe;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACnF,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QAEpD,MAAM,OAAO,GAAmB,KAAK,CAAC,WAAW,EAAE;YACjD,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,OAAO;YAChB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;YAC5C,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;aACxC;iBAAM,IAAI,MAAM,KAAK,KAAK,EAAE;gBAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;aACxC;iBAAM,IAAI,MAAM,IAAI,KAAK,EAAE;gBAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;aACxC;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;aAC9D;YAED,sCAAsC;SACvC;IACH,CAAC;IAED,6BAA6B;IAC7B,wBAAwB;IACxB,sDAAsD;IACtD,2BAA2B;IAC3B,sFAAsF;IACtF,KAAK,CAAC,QAAQ,CACZ,KAAa,EACb,WAAqB,QAAQ,EAC7B,OAAkB,SAAS,CAAC,GAAG;QAE/B,wCAAwC;QACxC,aAAa;QACb,8EAA8E;QAC9E,MAAM;QACN,IAAI;QAEJ,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAA;QACnC,QAAQ,IAAI,EAAE;YACZ,KAAK,SAAS,CAAC,GAAG;gBAChB,SAAS,GAAG,IAAI,CAAC,cAAc,CAAA;gBAC/B,MAAK;YACP,KAAK,SAAS,CAAC,GAAG;gBAChB,SAAS,GAAG,IAAI,CAAC,cAAc,CAAA;gBAC/B,MAAK;YACP,QAAQ;SACT;QAED,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAElC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;gBACL,KAAK,EAAE,+BAA+B;aACvC,CAAA;SACF;QAED,MAAM,QAAQ,GAAG,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAClE,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACxC,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAA;YAEF,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;aACtC;YAED,OAAO;gBACL,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;aAC5C,CAAA;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;gBACL,KAAK,EACH,wBAAwB;oBACxB,KAAK;oBACL,aAAa;oBACb,IAAI;oBACJ,YAAY;oBACZ,IAAI,CAAC,OAAO;oBACZ,aAAa;oBACb,CAAC,CAAC,QAAQ,EAAE;aACf,CAAA;SACF;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA","sourcesContent":["import { getEACAggregatorProxyContract } from '../eth/builtin/internal/eacaggregatorproxy_processor.js'\nimport fs from 'fs'\nimport { parse } from 'csv-parse/sync'\nimport { BlockTag } from 'ethers/providers'\nimport url from 'url'\nimport { scaleDown } from '../core/big-decimal.js'\n\ntype OralceRecord = {\n Pair: string\n Asset: string\n Type: string\n Address: string\n}\n\nexport enum PriceUnit {\n USD = 0,\n ETH = 1,\n BTC = 2,\n}\n\nexport interface DexPriceResult {\n price?: number\n error?: string\n}\n\n// Load price feed from https://docs.chain.link/docs/data-feeds/price-feeds/addresses/?network=ethereum\n// and then use EACAggregatorProxy contract to get price\nclass DexPrice {\n USD_ORACLE_MAP = new Map<string, string>()\n ETH_ORACLE_MAP = new Map<string, string>()\n BTC_ORACLE_MAP = new Map<string, string>()\n ASSETS_INFOS = new Map<string, number>()\n\n readonly chainId: number\n\n constructor(csvFileName: string, chainId: number) {\n this.chainId = chainId\n const csvFilePath = url.fileURLToPath(new URL('./' + csvFileName, import.meta.url))\n const fileContent = fs.readFileSync(csvFilePath, { encoding: 'utf-8' })\n const headers = ['Pair', 'Asset', 'Type', 'Address']\n\n const records: OralceRecord[] = parse(fileContent, {\n delimiter: ',',\n columns: headers,\n skip_empty_lines: true,\n })\n\n for (const record of records) {\n const pair = record.Pair.split('/')\n const asset = pair[0].trim().toLowerCase()\n const target = pair[1].trim().toLowerCase()\n const address = record.Address.toLowerCase()\n if (target === 'usd') {\n this.USD_ORACLE_MAP.set(asset, address)\n } else if (target === 'eth') {\n this.ETH_ORACLE_MAP.set(asset, address)\n } else if (target == 'btc') {\n this.BTC_ORACLE_MAP.set(asset, address)\n } else {\n console.error('wrong asset record:' + JSON.stringify(record))\n }\n\n // console.log(asset, target, address)\n }\n }\n\n // asset: symbol of the asset\n // unit: usd, eth or btc\n // blockTag: blockNumber of block symbol like \"latest\"\n // returns the asset price,\n // throw exception if calling to price feed failed, e.g. due to a invalid block number\n async getPrice(\n asset: string,\n blockTag: BlockTag = 'latest',\n unit: PriceUnit = PriceUnit.USD\n ): Promise<DexPriceResult> {\n // if (chainId !== 1 && chainId !== 5) {\n // return {\n // error: \"current dex price only support chain 1 (mainnet) or 5 (goerli)\"\n // }\n // }\n\n let oracleMap = this.USD_ORACLE_MAP\n switch (unit) {\n case PriceUnit.ETH:\n oracleMap = this.ETH_ORACLE_MAP\n break\n case PriceUnit.BTC:\n oracleMap = this.BTC_ORACLE_MAP\n break\n default:\n }\n\n asset = asset.trim().toLowerCase()\n\n const addr = oracleMap.get(asset)\n if (!addr) {\n return {\n error: 'No price feed found for asset',\n }\n }\n\n const contract = getEACAggregatorProxyContract(addr, this.chainId)\n try {\n const price = await contract.latestAnswer({\n blockTag: blockTag,\n })\n\n let decimal = this.ASSETS_INFOS.get(asset)\n if (!decimal) {\n decimal = Number(await contract.decimals())\n this.ASSETS_INFOS.set(asset, decimal)\n }\n\n return {\n price: scaleDown(price, decimal).toNumber(),\n }\n } catch (e) {\n return {\n error:\n 'Price query error for ' +\n asset +\n ' failed at ' +\n addr +\n ' at chain ' +\n this.chainId +\n '. Details: ' +\n e.toString(),\n }\n }\n }\n}\n\nexport const EthereumDexPrice = new DexPrice('chainlink-oracles.csv', 1)\nexport const GoerliDexPrice = new DexPrice('chainlink-oracles-goerli.csv', 5)\n"]}
@@ -1,4 +1,4 @@
1
- export * as chain from './chain.js';
2
- export * as conversion from './conversion.js';
3
- export * as token from './token.js';
4
- export * as dexPrice from './dex-price.js';
1
+ export * from './conversion.js';
2
+ export * from './token.js';
3
+ export * from './dex-price.js';
4
+ export * from './price.js';
@@ -1,5 +1,5 @@
1
- export * as chain from './chain.js';
2
- export * as conversion from './conversion.js';
3
- export * as token from './token.js';
4
- export * as dexPrice from './dex-price.js';
1
+ export * from './conversion.js';
2
+ export * from './token.js';
3
+ export * from './dex-price.js';
4
+ export * from './price.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA","sourcesContent":["export * as chain from './chain.js'\nexport * as conversion from './conversion.js'\nexport * as token from './token.js'\nexport * as dexPrice from './dex-price.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './conversion.js'\nexport * from './token.js'\nexport * from './dex-price.js'\nexport * from './price.js'\n"]}
@@ -11,4 +11,3 @@ export declare const NATIVE_ETH: {
11
11
  };
12
12
  export declare function getERC20TokenInfo(tokenAddress: string, chainId?: number): Promise<TokenInfo>;
13
13
  export declare function getER20NormalizedAmount(tokenAddress: string, amount: bigint, chainId: number): Promise<BigDecimal>;
14
- export declare function scaleDown(amount: bigint, decimal: number | bigint): BigDecimal;
@@ -1,7 +1,6 @@
1
- import { transformEtherError } from '../error.js';
2
- import { getERC20Contract } from '../builtin/erc20/index.js';
3
- import { getERC20BytesContract } from '../builtin/internal/erc20bytes_processor.js';
4
- import { BigDecimal } from '../core/big-decimal.js';
1
+ import { getERC20Contract } from '../eth/builtin/erc20/index.js';
2
+ import { getERC20BytesContract } from '../eth/builtin/internal/erc20bytes_processor.js';
3
+ import { scaleDown } from '../core/big-decimal.js';
5
4
  import { decodeBytes32String } from 'ethers';
6
5
  export const NATIVE_ETH = {
7
6
  symbol: 'ETH',
@@ -24,37 +23,27 @@ export async function getERC20TokenInfo(tokenAddress, chainId = 1) {
24
23
  }
25
24
  const contract = getERC20Contract(tokenAddress, chainId);
26
25
  const bytesContract = getERC20BytesContract(tokenAddress, chainId);
26
+ let name = '';
27
27
  try {
28
- // TODO maybe not do try catch, just do raw call the parse results
29
- let name = '';
30
- try {
31
- name = await contract.name();
32
- }
33
- catch (e) {
34
- name = decodeBytes32String(await bytesContract.name());
35
- }
36
- let symbol = '';
37
- try {
38
- symbol = await contract.symbol();
39
- }
40
- catch (e) {
41
- symbol = decodeBytes32String(await bytesContract.symbol());
42
- }
43
- const decimal = await contract.decimals();
44
- const info = getTokenInfoPromise(symbol, name, decimal);
45
- TOKEN_INFOS.set(key, info);
46
- return info;
28
+ name = await contract.name();
47
29
  }
48
30
  catch (e) {
49
- throw transformEtherError(e, undefined);
31
+ name = decodeBytes32String(await bytesContract.name());
50
32
  }
33
+ let symbol = '';
34
+ try {
35
+ symbol = await contract.symbol();
36
+ }
37
+ catch (e) {
38
+ symbol = decodeBytes32String(await bytesContract.symbol());
39
+ }
40
+ const decimal = await contract.decimals();
41
+ const info = getTokenInfoPromise(symbol, name, decimal);
42
+ TOKEN_INFOS.set(key, info);
43
+ return info;
51
44
  }
52
45
  export async function getER20NormalizedAmount(tokenAddress, amount, chainId) {
53
46
  const tokenInfo = await getERC20TokenInfo(tokenAddress, chainId);
54
47
  return scaleDown(amount, tokenInfo.decimal);
55
48
  }
56
- export function scaleDown(amount, decimal) {
57
- const divider = new BigDecimal(10).pow(Number(decimal));
58
- return amount.asBigDecimal().dividedBy(divider);
59
- }
60
49
  //# sourceMappingURL=token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAQ5C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,YAAY;CACnB,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAA;AAEzD,KAAK,UAAU,mBAAmB,CAChC,MAAuC,EACvC,IAAqC,EACrC,OAA+B;IAE/B,OAAO;QACL,MAAM,EAAE,MAAM,MAAM;QACpB,IAAI,EAAE,MAAM,IAAI;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC;KAC/B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,YAAoB,EAAE,OAAO,GAAG,CAAC;IACvE,MAAM,GAAG,GAAG,OAAO,GAAG,YAAY,CAAA;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAA;KACX;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAElE,IAAI;QACF,kEAAkE;QAClE,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,IAAI;YACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,GAAG,mBAAmB,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;SACvD;QAED,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI;YACF,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;SACjC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,GAAG,mBAAmB,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;SAC3D;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;QACzC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAEvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;KACxC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,EACpB,MAAc,EACd,OAAe;IAEf,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAChE,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,OAAwB;IAChE,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACvD,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import { transformEtherError } from '../error.js'\nimport { getERC20Contract } from '../builtin/erc20/index.js'\nimport { getERC20BytesContract } from '../builtin/internal/erc20bytes_processor.js'\nimport { BigDecimal } from '../core/big-decimal.js'\n// import { toBigDecimal } from './conversion'\n// import { utils } from 'ethers'\nimport { PromiseOrValue } from '../builtin/internal/common.js'\nimport { decodeBytes32String } from 'ethers'\n\nexport interface TokenInfo {\n symbol: string\n name: string\n decimal: number\n}\n\nexport const NATIVE_ETH = {\n symbol: 'ETH',\n decimal: 18,\n name: 'Native ETH',\n}\n\nconst TOKEN_INFOS = new Map<string, Promise<TokenInfo>>()\n\nasync function getTokenInfoPromise(\n symbol: PromiseOrValue<string> | string,\n name: PromiseOrValue<string> | string,\n decimal: PromiseOrValue<bigint>\n): Promise<TokenInfo> {\n return {\n symbol: await symbol,\n name: await name,\n decimal: Number(await decimal),\n }\n}\n\nexport async function getERC20TokenInfo(tokenAddress: string, chainId = 1): Promise<TokenInfo> {\n const key = chainId + tokenAddress\n const res = TOKEN_INFOS.get(key)\n if (res) {\n return res\n }\n const contract = getERC20Contract(tokenAddress, chainId)\n const bytesContract = getERC20BytesContract(tokenAddress, chainId)\n\n try {\n // TODO maybe not do try catch, just do raw call the parse results\n let name = ''\n try {\n name = await contract.name()\n } catch (e) {\n name = decodeBytes32String(await bytesContract.name())\n }\n\n let symbol = ''\n try {\n symbol = await contract.symbol()\n } catch (e) {\n symbol = decodeBytes32String(await bytesContract.symbol())\n }\n\n const decimal = await contract.decimals()\n const info = getTokenInfoPromise(symbol, name, decimal)\n\n TOKEN_INFOS.set(key, info)\n return info\n } catch (e) {\n throw transformEtherError(e, undefined)\n }\n}\n\nexport async function getER20NormalizedAmount(\n tokenAddress: string,\n amount: bigint,\n chainId: number\n): Promise<BigDecimal> {\n const tokenInfo = await getERC20TokenInfo(tokenAddress, chainId)\n return scaleDown(amount, tokenInfo.decimal)\n}\n\nexport function scaleDown(amount: bigint, decimal: number | bigint) {\n const divider = new BigDecimal(10).pow(Number(decimal))\n return amount.asBigDecimal().dividedBy(divider)\n}\n"]}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAA;AACvF,OAAO,EAAc,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAI9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAQ5C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,YAAY;CACnB,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAA;AAEzD,KAAK,UAAU,mBAAmB,CAChC,MAAuC,EACvC,IAAqC,EACrC,OAA+B;IAE/B,OAAO;QACL,MAAM,EAAE,MAAM,MAAM;QACpB,IAAI,EAAE,MAAM,IAAI;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC;KAC/B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,YAAoB,EAAE,OAAO,GAAG,CAAC;IACvE,MAAM,GAAG,GAAG,OAAO,GAAG,YAAY,CAAA;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAA;KACX;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAElE,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI;QACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,GAAG,mBAAmB,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;KACvD;IAED,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI;QACF,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,GAAG,mBAAmB,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;KAC3D;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACzC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAEvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,EACpB,MAAc,EACd,OAAe;IAEf,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAChE,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { getERC20Contract } from '../eth/builtin/erc20/index.js'\nimport { getERC20BytesContract } from '../eth/builtin/internal/erc20bytes_processor.js'\nimport { BigDecimal, scaleDown } from '../core/big-decimal.js'\n// import { toBigDecimal } from './conversion'\n// import { utils } from 'ethers'\nimport { PromiseOrValue } from '../eth/builtin/internal/common.js'\nimport { decodeBytes32String } from 'ethers'\n\nexport interface TokenInfo {\n symbol: string\n name: string\n decimal: number\n}\n\nexport const NATIVE_ETH = {\n symbol: 'ETH',\n decimal: 18,\n name: 'Native ETH',\n}\n\nconst TOKEN_INFOS = new Map<string, Promise<TokenInfo>>()\n\nasync function getTokenInfoPromise(\n symbol: PromiseOrValue<string> | string,\n name: PromiseOrValue<string> | string,\n decimal: PromiseOrValue<bigint>\n): Promise<TokenInfo> {\n return {\n symbol: await symbol,\n name: await name,\n decimal: Number(await decimal),\n }\n}\n\nexport async function getERC20TokenInfo(tokenAddress: string, chainId = 1): Promise<TokenInfo> {\n const key = chainId + tokenAddress\n const res = TOKEN_INFOS.get(key)\n if (res) {\n return res\n }\n const contract = getERC20Contract(tokenAddress, chainId)\n const bytesContract = getERC20BytesContract(tokenAddress, chainId)\n\n let name = ''\n try {\n name = await contract.name()\n } catch (e) {\n name = decodeBytes32String(await bytesContract.name())\n }\n\n let symbol = ''\n try {\n symbol = await contract.symbol()\n } catch (e) {\n symbol = decodeBytes32String(await bytesContract.symbol())\n }\n\n const decimal = await contract.decimals()\n const info = getTokenInfoPromise(symbol, name, decimal)\n\n TOKEN_INFOS.set(key, info)\n return info\n}\n\nexport async function getER20NormalizedAmount(\n tokenAddress: string,\n amount: bigint,\n chainId: number\n): Promise<BigDecimal> {\n const tokenInfo = await getERC20TokenInfo(tokenAddress, chainId)\n return scaleDown(amount, tokenInfo.decimal)\n}\n"]}
package/package.json CHANGED
@@ -1,42 +1,64 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
3
  "license": "Apache-2.0",
4
- "version": "2.0.0-rc.8",
4
+ "version": "2.0.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
- "compile_target": "yarn tsc -b src/target-ethers-sentio/tsconfig.json",
8
7
  "compile": "tsc -p . && cp src/utils/*.csv lib/utils && cp src/tsup.config.ts lib",
9
- "build": "yarn gen && yarn compile",
8
+ "build": "yarn gen:eth && yarn gen:aptos && yarn gen:solana && yarn compile",
10
9
  "build_all": "yarn lerna run --scope=@sentio/sdk build --include-dependencies",
11
10
  "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest",
12
- "gen": "yarn compile_target && yarn gen_bultin_evm",
13
- "gen_bultin_evm": "typechain --target lib/target-ethers-sentio/index.cjs --out-dir src/builtin/internal 'src/abis/*.json'"
11
+ "gen:eth": "ts-node-esm src/eth/codegen/run.ts src/eth/abis src/eth/builtin && yarn gen:eth_test",
12
+ "gen:eth_test": "ts-node-esm src/eth/codegen/run.ts src/tests/abis/eth ./src/tests/types/eth",
13
+ "gen:aptos": "ts-node-esm src/aptos/codegen/run.ts src/aptos/abis src/aptos/builtin && yarn gen:aptos_test",
14
+ "gen:aptos_test": "ts-node-esm src/aptos/codegen/run.ts src/aptos/tests/abis src/aptos/tests/types",
15
+ "gen:solana": "ts-node-esm src/solana/codegen/run.ts src/solana/tests/abis src/solana/tests/types"
14
16
  },
15
17
  "dependencies": {
18
+ "@project-serum/anchor": "^0.26.0",
16
19
  "@sentio/bigdecimal": "^9.1.1-patch.3",
17
- "@sentio/ethers-v6": "^1.0.19",
18
- "@sentio/protos": "^2.0.0-rc.8",
19
- "@sentio/runtime": "^2.0.0-rc.8",
20
+ "@sentio/ethers-v6": "^1.0.24",
21
+ "@sentio/protos": "^2.0.0",
22
+ "@sentio/runtime": "^2.0.0",
23
+ "@sentio/sdk": "^2.0.0",
24
+ "@solana/web3.js": "^1.47.3",
25
+ "@types/prettier": "^2.7.2",
26
+ "aptos-sdk": "npm:@sentio/aptos@^1.6.0",
27
+ "bs58": "^5.0.0",
28
+ "chalk": "^5.2.0",
20
29
  "csv-parse": "^5.3.0",
21
- "ethers": "6.0.0-beta-exports.16",
22
- "google-protobuf": "^3.15.8",
23
- "nice-grpc": "^2.0.0",
30
+ "ethers": "npm:@sentio/ethers@^6.0.2",
31
+ "lodash-es": "^4.17.21",
32
+ "mkdirp": "^2.1.3",
24
33
  "p-queue": "^7.3.0",
34
+ "prettier": "^2.8.1",
25
35
  "typechain": "^8.0.0"
26
36
  },
27
37
  "devDependencies": {
28
- "@types/google-protobuf": "^3.15.6"
38
+ "@certusone/wormhole-sdk": "^0.9.8",
39
+ "@types/google-protobuf": "^3.15.6",
40
+ "@types/lodash-es": "^4.17.6"
29
41
  },
30
42
  "exports": {
31
43
  ".": "./lib/index.js",
32
44
  "./testing": "./lib/testing/index.js",
33
- "./builtin": "./lib/builtin/index.js",
34
- "./builtin/erc20": "./lib/builtin/erc20/index.js",
35
- "./builtin/erc721": "./lib/builtin/erc721/index.js",
36
- "./builtin/erc1155": "./lib/builtin/erc1155/index.js",
37
- "./builtin/eacaggregatorproxy": "./lib/builtin/eacaggregatorproxy/index.js",
38
- "./builtin/weth9": "./lib/builtin/weth9/index.js",
39
- "./utils": "./lib/utils/index.js"
45
+ "./utils": "./lib/utils/index.js",
46
+ "./eth": "./lib/eth/index.js",
47
+ "./eth/codegen": "./lib/eth/codegen/index.js",
48
+ "./eth/builtin": "./lib/eth/builtin/index.js",
49
+ "./eth/builtin/erc20": "./lib/eth/builtin/erc20/index.js",
50
+ "./eth/builtin/erc721": "./lib/eth/builtin/erc721/index.js",
51
+ "./eth/builtin/erc1155": "./lib/eth/builtin/erc1155/index.js",
52
+ "./eth/builtin/eacaggregatorproxy": "./lib/eth/builtin/eacaggregatorproxy/index.js",
53
+ "./eth/builtin/weth9": "./lib/eth/builtin/weth9/index.js",
54
+ "./aptos": "./lib/aptos/index.js",
55
+ "./aptos/codegen": "./lib/aptos/codegen/index.js",
56
+ "./aptos/builtin": "./lib/aptos/builtin/index.js",
57
+ "./aptos/builtin/0x1": "./lib/aptos/builtin/0x1.js",
58
+ "./aptos/builtin/0x3": "./lib/aptos/builtin/0x3.js",
59
+ "./solana": "./lib/solana/index.js",
60
+ "./solana/builtin": "./lib/solana/builtin/index.js",
61
+ "./solana/codegen": "./lib/solana/codegen/index.js"
40
62
  },
41
63
  "files": [
42
64
  "{lib,src}",
@@ -49,5 +71,5 @@
49
71
  "typedoc": {
50
72
  "entryPoint": "./src/index.ts"
51
73
  },
52
- "gitHead": "937b4dded05a75246b1e5dfff39b74dc33c7356d"
74
+ "gitHead": "cf2076a978ad71fc93b9717171063f59d50d776e"
53
75
  }