@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../../src/eth/builtin/weth9/test-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,GAKjB,MAAM,YAAY,CAAC;AACpB,MAAM,SAAS,GAAG;IAChB,SAAS,EACP,oEAAoE;IACtE,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,eAAe,EACb,oEAAoE;IACtE,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,mCAAmC,EACnC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,mCAAmC,EACnC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,eAAuB,EACvB,KAAyB;IAEzB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,0BAA0B,EAC1B,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,eAAuB,EACvB,KAA4B;IAE5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,6BAA6B,EAC7B,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { LogParams } from \"ethers/providers\";\nimport {\n getWETH9Contract,\n ApprovalEventObject,\n TransferEventObject,\n DepositEventObject,\n WithdrawalEventObject,\n} from \"./index.js\";\nconst mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n};\n\nexport function mockApprovalLog(\n contractAddress: string,\n event: ApprovalEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Approval(address,address,uint256)\",\n [event.src, event.guy, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockTransferLog(\n contractAddress: string,\n event: TransferEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Transfer(address,address,uint256)\",\n [event.src, event.dst, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockDepositLog(\n contractAddress: string,\n event: DepositEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Deposit(address,uint256)\",\n [event.dst, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockWithdrawalLog(\n contractAddress: string,\n event: WithdrawalEventObject\n): LogParams {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"Withdrawal(address,uint256)\",\n [event.src, event.wad]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function codegen(abisDir: string, outDir: string): Promise<void>;
@@ -0,0 +1,53 @@
1
+ import { loadFileDescriptions, processOutput, skipEmptyAbis } from 'typechain/dist/typechain/io.js';
2
+ import * as fs from 'fs';
3
+ import { DEFAULT_FLAGS } from 'typechain';
4
+ import EthersSentio from './ethers-sentio.js';
5
+ import * as prettier from 'prettier';
6
+ import path from 'path';
7
+ import mkdirp from 'mkdirp';
8
+ export async function codegen(abisDir, outDir) {
9
+ if (!fs.existsSync(abisDir)) {
10
+ return;
11
+ }
12
+ console.log('Generated', await codegenInternal(abisDir, outDir), 'files');
13
+ }
14
+ async function codegenInternal(abisDir, outDir) {
15
+ let allFiles = fs.readdirSync(abisDir);
16
+ if (allFiles.length === 0) {
17
+ return 0;
18
+ }
19
+ allFiles = allFiles.map((f) => path.resolve(abisDir, f));
20
+ allFiles = skipEmptyAbis(allFiles);
21
+ if (allFiles.length === 0) {
22
+ return 0;
23
+ }
24
+ const outInternal = path.resolve(outDir, 'internal');
25
+ if (!fs.existsSync(outInternal)) {
26
+ fs.mkdirSync(outInternal, { recursive: true });
27
+ }
28
+ // skip empty paths
29
+ const config = {
30
+ cwd: process.cwd(),
31
+ flags: DEFAULT_FLAGS,
32
+ inputDir: abisDir,
33
+ target: '',
34
+ outDir: outInternal,
35
+ allFiles: allFiles,
36
+ filesToProcess: allFiles,
37
+ };
38
+ const services = {
39
+ fs,
40
+ prettier,
41
+ mkdirp: mkdirp.sync,
42
+ };
43
+ let filesGenerated = 0;
44
+ const target = new EthersSentio(config);
45
+ const fileDescriptions = loadFileDescriptions(services, config.filesToProcess);
46
+ filesGenerated += processOutput(services, config, await target.beforeRun());
47
+ for (const fd of fileDescriptions) {
48
+ filesGenerated += processOutput(services, config, await target.transformFile(fd));
49
+ }
50
+ filesGenerated += processOutput(services, config, target.afterRun());
51
+ return filesGenerated;
52
+ }
53
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/eth/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnG,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAU,aAAa,EAAY,MAAM,WAAW,CAAA;AAC3D,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AACpC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,MAAc;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAM;KACP;IACD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;AAC3E,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc;IAC5D,IAAI,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,CAAC,CAAA;KACT;IACD,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAExD,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,CAAC,CAAA;KACT;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC/B,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;KAC/C;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAW;QACrB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,QAAQ;QAClB,cAAc,EAAE,QAAQ;KACzB,CAAA;IACD,MAAM,QAAQ,GAAa;QACzB,EAAE;QACF,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,IAAI;KACpB,CAAA;IACD,IAAI,cAAc,GAAG,CAAC,CAAA;IAEtB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;IAEvC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAE9E,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAE3E,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE;QACjC,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;KAClF;IAED,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEpE,OAAO,cAAc,CAAA;AACvB,CAAC","sourcesContent":["import { loadFileDescriptions, processOutput, skipEmptyAbis } from 'typechain/dist/typechain/io.js'\nimport * as fs from 'fs'\nimport { Config, DEFAULT_FLAGS, Services } from 'typechain'\nimport EthersSentio from './ethers-sentio.js'\nimport * as prettier from 'prettier'\nimport path from 'path'\nimport mkdirp from 'mkdirp'\n\nexport async function codegen(abisDir: string, outDir: string) {\n if (!fs.existsSync(abisDir)) {\n return\n }\n console.log('Generated', await codegenInternal(abisDir, outDir), 'files')\n}\n\nasync function codegenInternal(abisDir: string, outDir: string): Promise<number> {\n let allFiles = fs.readdirSync(abisDir)\n if (allFiles.length === 0) {\n return 0\n }\n allFiles = allFiles.map((f) => path.resolve(abisDir, f))\n\n allFiles = skipEmptyAbis(allFiles)\n if (allFiles.length === 0) {\n return 0\n }\n const outInternal = path.resolve(outDir, 'internal')\n if (!fs.existsSync(outInternal)) {\n fs.mkdirSync(outInternal, { recursive: true })\n }\n\n // skip empty paths\n const config: Config = {\n cwd: process.cwd(),\n flags: DEFAULT_FLAGS,\n inputDir: abisDir,\n target: '',\n outDir: outInternal,\n allFiles: allFiles,\n filesToProcess: allFiles,\n }\n const services: Services = {\n fs,\n prettier,\n mkdirp: mkdirp.sync,\n }\n let filesGenerated = 0\n\n const target = new EthersSentio(config)\n\n const fileDescriptions = loadFileDescriptions(services, config.filesToProcess)\n\n filesGenerated += processOutput(services, config, await target.beforeRun())\n\n for (const fd of fileDescriptions) {\n filesGenerated += processOutput(services, config, await target.transformFile(fd))\n }\n\n filesGenerated += processOutput(services, config, target.afterRun())\n\n return filesGenerated\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import Ethers from '@sentio/ethers-v6';
2
2
  import { Config, FileDescription } from 'typechain';
3
- export default class EthersSentio extends Ethers {
3
+ export default class EthersSentio extends Ethers.default {
4
4
  constructor(config: Config);
5
5
  transformAbiOrFullJsonFile(file: FileDescription): FileDescription[] | void;
6
6
  afterRun(): FileDescription[];
@@ -0,0 +1,57 @@
1
+ import Ethers from '@sentio/ethers-v6';
2
+ import { extractAbi, extractDocumentation, parse, shortenFullJsonFilePath } from 'typechain';
3
+ import { dirname, join, relative } from 'path';
4
+ import { codeGenIndex, codeGenSentioFile, codeGenTestUtilsFile } from './file.js';
5
+ export default class EthersSentio extends Ethers.default {
6
+ constructor(config) {
7
+ if (!config.outDir) {
8
+ throw new Error('Out put path not specificed');
9
+ }
10
+ super(config);
11
+ }
12
+ // TODO(pc): also have to override transformBinFile, transformFile
13
+ transformAbiOrFullJsonFile(file) {
14
+ const abi = extractAbi(file.contents);
15
+ if (abi.length === 0) {
16
+ return;
17
+ }
18
+ const documentation = extractDocumentation(file.contents);
19
+ const jsonPath = relative(this.cfg.inputDir, shortenFullJsonFilePath(file.path, this.cfg.allFiles));
20
+ const contract = parse(abi, jsonPath, documentation);
21
+ const files = super.transformAbiOrFullJsonFile(file);
22
+ if (files !== undefined) {
23
+ // files.forEach(this.transformFilePath)
24
+ // for (const file of files) {
25
+ // this.transformFilePath(file)
26
+ // }
27
+ return [
28
+ ...files,
29
+ {
30
+ path: join(dirname(files[0].path), `${contract.name.toLowerCase()}_processor.ts`),
31
+ contents: codeGenSentioFile(contract),
32
+ },
33
+ {
34
+ path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'index.ts'),
35
+ contents: codeGenIndex(contract),
36
+ },
37
+ {
38
+ path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'test-utils.ts'),
39
+ contents: codeGenTestUtilsFile(contract),
40
+ },
41
+ ];
42
+ }
43
+ }
44
+ afterRun() {
45
+ const files = super.afterRun();
46
+ for (const [idx, file] of files.entries()) {
47
+ if (file.path.endsWith('__factory.ts')) {
48
+ file.contents = '// @ts-nocheck\n' + file.contents;
49
+ }
50
+ if (file.path.endsWith('factories/index.ts')) {
51
+ file.contents = file.contents.replaceAll("__factory'", "__factory.js'");
52
+ }
53
+ }
54
+ return files;
55
+ }
56
+ }
57
+ //# sourceMappingURL=ethers-sentio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethers-sentio.js","sourceRoot":"","sources":["../../../src/eth/codegen/ethers-sentio.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAU,UAAU,EAAE,oBAAoB,EAAmB,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACrH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEjF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,MAAM,CAAC,OAAO;IACtD,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;SAC/C;QACD,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED,kEAAkE;IACzD,0BAA0B,CAAC,IAAqB;QACvD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAM;SACP;QAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAEpD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,wCAAwC;YACxC,8BAA8B;YAC9B,iCAAiC;YACjC,IAAI;YAEJ,OAAO;gBACL,GAAG,KAAK;gBACR;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC;oBACjF,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC;iBACtC;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC;oBACjF,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;iBACjC;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC;oBACtF,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;iBACzC;aACF,CAAA;SACF;IACH,CAAC;IAEQ,QAAQ;QACf,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACtC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAA;aACnD;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;gBAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;aACxE;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF","sourcesContent":["import Ethers from '@sentio/ethers-v6'\nimport { Config, extractAbi, extractDocumentation, FileDescription, parse, shortenFullJsonFilePath } from 'typechain'\nimport { dirname, join, relative } from 'path'\nimport { codeGenIndex, codeGenSentioFile, codeGenTestUtilsFile } from './file.js'\n\nexport default class EthersSentio extends Ethers.default {\n constructor(config: Config) {\n if (!config.outDir) {\n throw new Error('Out put path not specificed')\n }\n super(config)\n }\n\n // TODO(pc): also have to override transformBinFile, transformFile\n override transformAbiOrFullJsonFile(file: FileDescription): FileDescription[] | void {\n const abi = extractAbi(file.contents)\n if (abi.length === 0) {\n return\n }\n\n const documentation = extractDocumentation(file.contents)\n\n const jsonPath = relative(this.cfg.inputDir, shortenFullJsonFilePath(file.path, this.cfg.allFiles))\n const contract = parse(abi, jsonPath, documentation)\n const files = super.transformAbiOrFullJsonFile(file)\n\n if (files !== undefined) {\n // files.forEach(this.transformFilePath)\n // for (const file of files) {\n // this.transformFilePath(file)\n // }\n\n return [\n ...files,\n {\n path: join(dirname(files[0].path), `${contract.name.toLowerCase()}_processor.ts`),\n contents: codeGenSentioFile(contract),\n },\n {\n path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'index.ts'),\n contents: codeGenIndex(contract),\n },\n {\n path: join(dirname(files[0].path), '..', contract.name.toLowerCase(), 'test-utils.ts'),\n contents: codeGenTestUtilsFile(contract),\n },\n ]\n }\n }\n\n override afterRun() {\n const files = super.afterRun()\n for (const [idx, file] of files.entries()) {\n if (file.path.endsWith('__factory.ts')) {\n file.contents = '// @ts-nocheck\\n' + file.contents\n }\n if (file.path.endsWith('factories/index.ts')) {\n file.contents = file.contents.replaceAll(\"__factory'\", \"__factory.js'\")\n }\n }\n return files\n }\n}\n"]}
@@ -0,0 +1,46 @@
1
+ import { getFullSignatureAsSymbolForEvent } from 'typechain';
2
+ import { getFullSignatureForEventPatched } from './types.js';
3
+ import { generateEventInputs } from '@sentio/ethers-v6/dist/codegen/events.js';
4
+ export function generateEventHandler(event, contractName, includeArgTypes) {
5
+ const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name;
6
+ const eventNamePrefix = includeArgTypes ? eventName + '_' : eventName;
7
+ const filterName = getFullSignatureForEventPatched(event);
8
+ return `
9
+ onEvent${eventName}(
10
+ handler: (event: ${eventNamePrefix}Event, ctx: ${contractName}Context) => void,
11
+ filter?: ${eventNamePrefix}EventFilter | ${eventNamePrefix}EventFilter[],
12
+ fetchConfig?: EthFetchConfig
13
+ ) {
14
+ if (!filter) {
15
+ filter = templateContract.filters['${filterName}'](${event.inputs.map(() => 'null').join(',')})
16
+ }
17
+ return super.onEvent(handler, filter!, fetchConfig)
18
+ }
19
+ `;
20
+ }
21
+ export function generateEventHandlers(events, contractName) {
22
+ if (events.length === 1) {
23
+ return generateEventHandler(events[0], contractName, false);
24
+ }
25
+ else {
26
+ return events.map((e) => generateEventHandler(e, contractName, true)).join('\n');
27
+ }
28
+ }
29
+ function generateEventFilter(event, includeArgTypes) {
30
+ const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name;
31
+ const filterName = getFullSignatureForEventPatched(event);
32
+ return `
33
+ ${eventName}(${generateEventInputs(event.inputs)}) { return templateContract.filters['${filterName}'](${event.inputs
34
+ .map((i) => i.name)
35
+ .join(',')}) }
36
+ `;
37
+ }
38
+ export function generateEventFilters(events) {
39
+ if (events.length === 1) {
40
+ return [generateEventFilter(events[0], false)];
41
+ }
42
+ else {
43
+ return events.map((e) => generateEventFilter(e, true));
44
+ }
45
+ }
46
+ //# sourceMappingURL=event-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,gCAAgC,EAAE,MAAM,WAAW,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAE9E,MAAM,UAAU,oBAAoB,CAAC,KAAuB,EAAE,YAAoB,EAAE,eAAwB;IAC1G,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IACxF,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAErE,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAA;IACzD,OAAO;WACE,SAAS;uBACG,eAAe,eAAe,YAAY;eAClD,eAAe,iBAAiB,eAAe;;;;2CAInB,UAAU,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;;GAIhG,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA0B,EAAE,YAAoB;IACpF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;KAC5D;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjF;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAuB,EAAE,eAAwB;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IAExF,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAA;IACzD,OAAO;MACH,SAAS,IAAI,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,UAAU,MAAM,KAAK,CAAC,MAAM;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC;GACX,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA0B;IAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;KAC/C;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;KACvD;AACH,CAAC","sourcesContent":["import { EventDeclaration, Contract, getFullSignatureAsSymbolForEvent } from 'typechain'\nimport { getFullSignatureForEventPatched } from './types.js'\nimport { generateEventInputs } from '@sentio/ethers-v6/dist/codegen/events.js'\n\nexport function generateEventHandler(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {\n const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name\n const eventNamePrefix = includeArgTypes ? eventName + '_' : eventName\n\n const filterName = getFullSignatureForEventPatched(event)\n return `\n onEvent${eventName}(\n handler: (event: ${eventNamePrefix}Event, ctx: ${contractName}Context) => void,\n filter?: ${eventNamePrefix}EventFilter | ${eventNamePrefix}EventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters['${filterName}'](${event.inputs.map(() => 'null').join(',')})\n }\n return super.onEvent(handler, filter!, fetchConfig)\n }\n `\n}\n\nexport function generateEventHandlers(events: EventDeclaration[], contractName: string): string {\n if (events.length === 1) {\n return generateEventHandler(events[0], contractName, false)\n } else {\n return events.map((e) => generateEventHandler(e, contractName, true)).join('\\n')\n }\n}\n\nfunction generateEventFilter(event: EventDeclaration, includeArgTypes: boolean): string {\n const eventName = includeArgTypes ? getFullSignatureAsSymbolForEvent(event) : event.name\n\n const filterName = getFullSignatureForEventPatched(event)\n return `\n ${eventName}(${generateEventInputs(event.inputs)}) { return templateContract.filters['${filterName}'](${event.inputs\n .map((i) => i.name)\n .join(',')}) }\n `\n}\n\nexport function generateEventFilters(events: EventDeclaration[]): string[] {\n if (events.length === 1) {\n return [generateEventFilter(events[0], false)]\n } else {\n return events.map((e) => generateEventFilter(e, true))\n }\n}\n"]}
@@ -1,23 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.codeGenTestUtilsFile = exports.codeGenSentioFile = exports.codeGenIndex = void 0;
4
- const typechain_1 = require("typechain");
5
- const reserved_keywords_1 = require("@sentio/ethers-v6/dist/codegen/reserved-keywords");
6
- const signatures_1 = require("typechain/dist/utils/signatures");
7
- const functions_handler_cjs_1 = require("./functions-handler.cjs");
8
- const event_handler_cjs_1 = require("./event-handler.cjs");
9
- const view_function_cjs_1 = require("./view-function.cjs");
10
- function codeGenIndex(contract) {
1
+ import { createImportsForUsedIdentifiers, getFullSignatureAsSymbolForEvent, getFullSignatureForEvent, } from 'typechain';
2
+ import { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js';
3
+ import { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js';
4
+ import { generateEventFilters, generateEventHandlers } from './event-handler.js';
5
+ import { generateBoundViewFunctions, generateViewFunctions } from './view-function.js';
6
+ export function codeGenIndex(contract) {
11
7
  return `
12
8
  export * from '../internal/${contract.name.toLowerCase()}_processor.js'
13
9
  export * from '../internal/${contract.name}.js'
14
10
  export * from './test-utils.js'
15
11
  `;
16
12
  }
17
- exports.codeGenIndex = codeGenIndex;
18
- function codeGenSentioFile(contract) {
13
+ export function codeGenSentioFile(contract) {
19
14
  const source = `
20
- ${Object.values(contract.functions).map(functions_handler_cjs_1.codegenCallTraceTypes).join('\n')}
15
+ ${Object.values(contract.functions).map(codegenCallTraceTypes).join('\n')}
21
16
 
22
17
  const templateContract = ${contract.name}__factory.connect("0x0", DummyProvider)
23
18
 
@@ -27,16 +22,16 @@ function codeGenSentioFile(contract) {
27
22
  }
28
23
 
29
24
  ${Object.values(contract.functions)
30
- .filter((f) => !reserved_keywords_1.reservedKeywords.has(f[0].name))
31
- .map((fs) => (0, view_function_cjs_1.generateViewFunctions)(fs))
25
+ .filter((f) => !reservedKeywords.has(f[0].name))
26
+ .map((fs) => generateViewFunctions(fs))
32
27
  .join('\n')}
33
28
  }
34
29
 
35
30
  export class ${contract.name}BoundContractView extends BoundContractView<${contract.name},
36
31
  ${contract.name}ContractView> {
37
32
  ${Object.values(contract.functions)
38
- .filter((f) => !reserved_keywords_1.reservedKeywords.has(f[0].name))
39
- .map((fs) => (0, view_function_cjs_1.generateBoundViewFunctions)(fs))
33
+ .filter((f) => !reservedKeywords.has(f[0].name))
34
+ .map((fs) => generateBoundViewFunctions(fs))
40
35
  .join('\n')}
41
36
  }
42
37
 
@@ -44,22 +39,22 @@ function codeGenSentioFile(contract) {
44
39
 
45
40
  export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {
46
41
  ${Object.values(contract.events)
47
- .map((events) => (0, event_handler_cjs_1.generateEventHandlers)(events, contract.name))
42
+ .map((events) => generateEventHandlers(events, contract.name))
48
43
  .join('\n')}
49
44
 
50
45
  ${Object.values(contract.functions)
51
- .map((f) => (0, functions_handler_cjs_1.generateCallHandlers)(f, contract.name))
46
+ .map((f) => generateCallHandlers(f, contract.name))
52
47
  .join('\n')}
53
48
 
54
49
  public static filters = {
55
50
  ${Object.values(contract.events)
56
- .map((events) => (0, event_handler_cjs_1.generateEventFilters)(events))
51
+ .map((events) => generateEventFilters(events))
57
52
  .join(',')}
58
53
  }
59
54
 
60
55
  protected CreateBoundContractView(): ${contract.name}BoundContractView {
61
56
  const view = get${contract.name}Contract(this.config.address, this.config.network)
62
- return new ${contract.name}BoundContractView(view)
57
+ return new ${contract.name}BoundContractView(this.config.address, view)
63
58
  }
64
59
 
65
60
  public static bind(options: BindOptions): ${contract.name}Processor {
@@ -89,12 +84,12 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
89
84
  }
90
85
 
91
86
  ${Object.values(contract.events)
92
- .map((events) => (0, event_handler_cjs_1.generateEventHandlers)(events, contract.name))
87
+ .map((events) => generateEventHandlers(events, contract.name))
93
88
  .join('\n')}
94
89
 
95
90
  ${Object.values(contract.functions)
96
91
  .map((functions) => {
97
- (0, functions_handler_cjs_1.generateCallHandlers)(functions, contract.name);
92
+ generateCallHandlers(functions, contract.name);
98
93
  })
99
94
  .join('\n')}
100
95
  }
@@ -116,8 +111,8 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
116
111
  }
117
112
  else {
118
113
  return events.flatMap((e) => [
119
- `${(0, typechain_1.getFullSignatureAsSymbolForEvent)(e)}_Event`,
120
- `${(0, typechain_1.getFullSignatureAsSymbolForEvent)(e)}_EventFilter`,
114
+ `${getFullSignatureAsSymbolForEvent(e)}_Event`,
115
+ `${getFullSignatureAsSymbolForEvent(e)}_EventFilter`,
121
116
  ]);
122
117
  }
123
118
  });
@@ -136,10 +131,10 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
136
131
  });
137
132
  // dedup namespace
138
133
  const uniqueStructImports = [...new Set(structImports)];
139
- const imports = (0, typechain_1.createImportsForUsedIdentifiers)({
134
+ const imports = createImportsForUsedIdentifiers({
140
135
  ethers: ['BigNumberish', 'Overrides', 'BytesLike'],
141
136
  'ethers/providers': ['Networkish'],
142
- '@sentio/sdk': [
137
+ '@sentio/sdk/eth': [
143
138
  'addContractByABI',
144
139
  'getContractByABI',
145
140
  'addProcessor',
@@ -164,8 +159,7 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
164
159
  }, source);
165
160
  return imports + source;
166
161
  }
167
- exports.codeGenSentioFile = codeGenSentioFile;
168
- function codeGenTestUtilsFile(contract) {
162
+ export function codeGenTestUtilsFile(contract) {
169
163
  const source = `
170
164
  const mockField = {
171
165
  blockHash:
@@ -188,7 +182,7 @@ function codeGenTestUtilsFile(contract) {
188
182
  })
189
183
  .join('\n')}
190
184
  `;
191
- const imports = (0, typechain_1.createImportsForUsedIdentifiers)({
185
+ const imports = createImportsForUsedIdentifiers({
192
186
  'ethers/providers': ['LogParams'],
193
187
  './index.js': [
194
188
  `get${contract.name}Contract`,
@@ -197,25 +191,24 @@ function codeGenTestUtilsFile(contract) {
197
191
  return `${events[0].name}EventObject`;
198
192
  }
199
193
  else {
200
- return events.flatMap((e) => `${(0, typechain_1.getFullSignatureAsSymbolForEvent)(e)}_EventObject`);
194
+ return events.flatMap((e) => `${getFullSignatureAsSymbolForEvent(e)}_EventObject`);
201
195
  }
202
196
  }),
203
197
  ],
204
198
  }, source);
205
199
  return imports + source;
206
200
  }
207
- exports.codeGenTestUtilsFile = codeGenTestUtilsFile;
208
201
  function generateMockEventLogFunction(event, contractName, includeArgTypes) {
209
202
  let eventName = event.name;
210
203
  if (includeArgTypes) {
211
- eventName = (0, typechain_1.getFullSignatureAsSymbolForEvent)(event) + '_';
204
+ eventName = getFullSignatureAsSymbolForEvent(event) + '_';
212
205
  }
213
206
  const eventArgs = event.inputs.map((input, i) => `event.${input.name ?? `arg${i.toString()}`}`);
214
207
  return `
215
208
  export function mock${eventName}Log(contractAddress: string, event: ${eventName}EventObject): LogParams {
216
209
  const contract = get${contractName}Contract(contractAddress)
217
210
  const encodedLog = contract.rawContract.interface.encodeEventLog(
218
- '${(0, signatures_1.getFullSignatureForEvent)(event)}',
211
+ '${getFullSignatureForEvent(event)}',
219
212
  [${eventArgs.join(', ')}]
220
213
  )
221
214
  return {
@@ -228,4 +221,4 @@ function generateMockEventLogFunction(event, contractName, includeArgTypes) {
228
221
  }
229
222
  `;
230
223
  }
231
- //# sourceMappingURL=file.cjs.map
224
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/eth/codegen/file.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Contract,\n createImportsForUsedIdentifiers,\n EventDeclaration,\n getFullSignatureAsSymbolForEvent,\n getFullSignatureForEvent,\n} from 'typechain'\n\nimport { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js'\nimport { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js'\nimport { generateEventFilters, generateEventHandlers } from './event-handler.js'\nimport { generateBoundViewFunctions, generateViewFunctions } from './view-function.js'\n\nexport function codeGenIndex(contract: Contract): string {\n return ` \n export * from '../internal/${contract.name.toLowerCase()}_processor.js'\n export * from '../internal/${contract.name}.js'\n export * from './test-utils.js'\n `\n}\n\nexport function codeGenSentioFile(contract: Contract): string {\n const source = `\n ${Object.values(contract.functions).map(codegenCallTraceTypes).join('\\n')}\n\n const templateContract = ${contract.name}__factory.connect(\"0x0\", DummyProvider)\n\n export class ${contract.name}ContractView extends ContractView<${contract.name}> {\n constructor (contract: ${contract.name}) {\n super(contract);\n }\n\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .map((fs) => generateViewFunctions(fs))\n .join('\\n')}\n }\n \n export class ${contract.name}BoundContractView extends BoundContractView<${contract.name}, \n ${contract.name}ContractView> {\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .map((fs) => generateBoundViewFunctions(fs))\n .join('\\n')}\n }\n\n export type ${contract.name}Context = ContractContext<${contract.name}, ${contract.name}BoundContractView>\n\n export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n\n ${Object.values(contract.functions)\n .map((f) => generateCallHandlers(f, contract.name))\n .join('\\n')}\n\n public static filters = {\n ${Object.values(contract.events)\n .map((events) => generateEventFilters(events))\n .join(',')}\n }\n \n protected CreateBoundContractView(): ${contract.name}BoundContractView {\n const view = get${contract.name}Contract(this.config.address, this.config.network)\n return new ${contract.name}BoundContractView(this.config.address, view)\n }\n\n public static bind(options: BindOptions): ${contract.name}Processor {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n}\n\nexport class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${contract.name}, ${\n contract.name\n }BoundContractView> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n \n ${Object.values(contract.functions)\n .map((functions) => {\n generateCallHandlers(functions, contract.name)\n })\n .join('\\n')}\n }\n\n\n export function get${contract.name}Contract(address: string, network: Networkish = 1): ${contract.name}ContractView {\n let contract = getContractByABI(\"${contract.name}\", address, network) as ${contract.name}ContractView\n if (!contract) {\n const rawContract = ${contract.name}__factory.connect(address, getProvider(network))\n contract = new ${contract.name}ContractView(rawContract)\n addContractByABI(\"${contract.name}\", address, network, contract)\n }\n return contract\n }\n `\n const eventsImports = Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return [`${events[0].name}Event`, `${events[0].name}EventFilter`]\n } else {\n return events.flatMap((e) => [\n `${getFullSignatureAsSymbolForEvent(e)}_Event`,\n `${getFullSignatureAsSymbolForEvent(e)}_EventFilter`,\n ])\n }\n })\n\n const structImports = Object.values(contract.structs).flatMap((structs) => {\n return structs.flatMap((s) => {\n if (!s.structName) {\n return []\n }\n if (s.structName.namespace) {\n return [s.structName.namespace]\n } else {\n return [s.structName.identifier + 'StructOutput', s.structName.identifier + 'Struct']\n }\n })\n })\n // dedup namespace\n const uniqueStructImports = [...new Set(structImports)]\n\n const imports = createImportsForUsedIdentifiers(\n {\n ethers: ['BigNumberish', 'Overrides', 'BytesLike'],\n 'ethers/providers': ['Networkish'],\n '@sentio/sdk/eth': [\n 'addContractByABI',\n 'getContractByABI',\n 'addProcessor',\n 'getProcessor',\n 'getProvider',\n 'transformEtherError',\n 'Trace',\n 'BindOptions',\n 'BaseProcessor',\n 'BaseProcessorTemplate',\n 'BoundContractView',\n 'ContractContext',\n 'ContractView',\n 'DummyProvider',\n 'TypedCallTrace',\n 'toBlockTag',\n ],\n '@sentio/protos': ['EthFetchConfig'],\n './common.js': ['PromiseOrValue'],\n './index.js': [`${contract.name}`, `${contract.name}__factory`],\n [`./${contract.name}.js`]: eventsImports.concat(uniqueStructImports),\n },\n source\n )\n\n return imports + source\n}\n\nexport function codeGenTestUtilsFile(contract: Contract): string {\n const source = `\n const mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n }\n ${Object.values(contract.events)\n .map((events) => {\n if (events.length === 1) {\n return generateMockEventLogFunction(events[0], contract.name, false)\n } else {\n return events.map((e) => generateMockEventLogFunction(e, contract.name, true)).join('\\n')\n }\n })\n .join('\\n')}\n `\n\n const imports = createImportsForUsedIdentifiers(\n {\n 'ethers/providers': ['LogParams'],\n './index.js': [\n `get${contract.name}Contract`,\n ...Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return `${events[0].name}EventObject`\n } else {\n return events.flatMap((e) => `${getFullSignatureAsSymbolForEvent(e)}_EventObject`)\n }\n }),\n ],\n },\n source\n )\n\n return imports + source\n}\n\nfunction generateMockEventLogFunction(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {\n let eventName = event.name\n if (includeArgTypes) {\n eventName = getFullSignatureAsSymbolForEvent(event) + '_'\n }\n\n const eventArgs = event.inputs.map((input, i) => `event.${input.name ?? `arg${i.toString()}`}`)\n\n return `\n export function mock${eventName}Log(contractAddress: string, event: ${eventName}EventObject): LogParams {\n const contract = get${contractName}Contract(contractAddress)\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n '${getFullSignatureForEvent(event)}',\n [${eventArgs.join(', ')}]\n )\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n }\n }\n `\n}\n"]}
@@ -1,29 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.codegenCallTraceTypes = exports.generateCallHandlers = void 0;
4
- const types_1 = require("@sentio/ethers-v6/dist/codegen/types");
5
- const js_sha3_1 = require("js-sha3");
6
- const typechain_1 = require("typechain");
7
- const types_cjs_1 = require("./types.cjs");
8
- function generateCallHandlers(fns, contractName) {
1
+ import { generateOutputComplexTypeAsArray, generateOutputComplexTypesAsObject, } from '@sentio/ethers-v6/dist/codegen/types.js';
2
+ import sha3 from 'js-sha3';
3
+ import { getSignatureForFn } from 'typechain';
4
+ import { getFullSignatureAsSymbolForFunction } from './types.js';
5
+ export function generateCallHandlers(fns, contractName) {
9
6
  if (fns.length === 1) {
10
7
  return generateCallHandler(fns[0], contractName);
11
8
  }
12
- return fns.map((fn) => generateCallHandler(fn, contractName, (0, types_cjs_1.getFullSignatureAsSymbolForFunction)(fn))).join('\n');
9
+ return fns.map((fn) => generateCallHandler(fn, contractName, getFullSignatureAsSymbolForFunction(fn))).join('\n');
13
10
  }
14
- exports.generateCallHandlers = generateCallHandlers;
15
- function codegenCallTraceTypes(fns) {
11
+ export function codegenCallTraceTypes(fns) {
16
12
  if (fns.length === 1) {
17
13
  return codegenCallTraceType(fns[0]);
18
14
  }
19
- return fns.map((fn) => codegenCallTraceType(fn, (0, types_cjs_1.getFullSignatureAsSymbolForFunction)(fn))).join('\n');
15
+ return fns.map((fn) => codegenCallTraceType(fn, getFullSignatureAsSymbolForFunction(fn))).join('\n');
20
16
  }
21
- exports.codegenCallTraceTypes = codegenCallTraceTypes;
22
17
  function codegenCallTraceType(fn, overloadedName) {
23
18
  const identifier = capitalizeFirstChar(overloadedName ?? fn.name);
24
19
  const components = fn.inputs.map((input, i) => ({ name: input.name ?? `arg${i.toString()}`, type: input.type }));
25
- const arrayOutput = (0, types_1.generateOutputComplexTypeAsArray)(components, { useStructs: true });
26
- const objectOutput = (0, types_1.generateOutputComplexTypesAsObject)(components, { useStructs: true }) || '{}';
20
+ const arrayOutput = generateOutputComplexTypeAsArray(components, { useStructs: true });
21
+ const objectOutput = generateOutputComplexTypesAsObject(components, { useStructs: true }) || '{}';
27
22
  return `
28
23
  export interface ${identifier}CallObject ${objectOutput}
29
24
 
@@ -31,10 +26,10 @@ function codegenCallTraceType(fn, overloadedName) {
31
26
  `;
32
27
  }
33
28
  function generateCallHandler(fn, contractName, overloadedName) {
34
- const signature = (0, typechain_1.getSignatureForFn)(fn);
29
+ const signature = getSignatureForFn(fn);
35
30
  // utils.toUtf8Bytes(signature))
36
31
  const test = new TextEncoder().encode(signature);
37
- const sighash = "0x" + (0, js_sha3_1.keccak_256)(test).substring(0, 8);
32
+ const sighash = '0x' + sha3.keccak_256(test).substring(0, 8);
38
33
  return `
39
34
  onCall${capitalizeFirstChar(overloadedName ?? fn.name)}(
40
35
  handler: (call: ${capitalizeFirstChar(overloadedName ?? fn.name)}CallTrace, ctx: ${contractName}Context) => void,
@@ -50,4 +45,4 @@ function capitalizeFirstChar(input) {
50
45
  }
51
46
  return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '');
52
47
  }
53
- //# sourceMappingURL=functions-handler.cjs.map
48
+ //# sourceMappingURL=functions-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions-handler.js","sourceRoot":"","sources":["../../../src/eth/codegen/functions-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n generateOutputComplexTypeAsArray,\n generateOutputComplexTypesAsObject,\n} from '@sentio/ethers-v6/dist/codegen/types.js'\nimport sha3 from 'js-sha3'\nimport { FunctionDeclaration, getSignatureForFn } from 'typechain'\nimport { getFullSignatureAsSymbolForFunction } from './types.js'\n\nexport function generateCallHandlers(fns: FunctionDeclaration[], contractName: string): string {\n if (fns.length === 1) {\n return generateCallHandler(fns[0], contractName)\n }\n\n return fns.map((fn) => generateCallHandler(fn, contractName, getFullSignatureAsSymbolForFunction(fn))).join('\\n')\n}\n\nexport function codegenCallTraceTypes(fns: FunctionDeclaration[]): string {\n if (fns.length === 1) {\n return codegenCallTraceType(fns[0])\n }\n\n return fns.map((fn) => codegenCallTraceType(fn, getFullSignatureAsSymbolForFunction(fn))).join('\\n')\n}\n\nfunction codegenCallTraceType(fn: FunctionDeclaration, overloadedName?: string): string {\n const identifier = capitalizeFirstChar(overloadedName ?? fn.name)\n\n const components = fn.inputs.map((input, i) => ({ name: input.name ?? `arg${i.toString()}`, type: input.type }))\n const arrayOutput = generateOutputComplexTypeAsArray(components, { useStructs: true })\n const objectOutput = generateOutputComplexTypesAsObject(components, { useStructs: true }) || '{}'\n\n return `\n export interface ${identifier}CallObject ${objectOutput}\n \n export type ${identifier}CallTrace = TypedCallTrace<${arrayOutput}, ${identifier}CallObject> & Trace\n `\n}\n\nfunction generateCallHandler(fn: FunctionDeclaration, contractName: string, overloadedName?: string): string {\n const signature = getSignatureForFn(fn)\n // utils.toUtf8Bytes(signature))\n\n const test = new TextEncoder().encode(signature)\n const sighash = '0x' + sha3.keccak_256(test).substring(0, 8)\n\n return `\n onCall${capitalizeFirstChar(overloadedName ?? fn.name)}(\n handler: (call: ${capitalizeFirstChar(overloadedName ?? fn.name)}CallTrace, ctx: ${contractName}Context) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"${sighash}\", handler, fetchConfig);\n }\n`\n}\n\nfunction capitalizeFirstChar(input: string): string {\n if (!input) {\n return input\n }\n return input[0].toUpperCase() + (input.length > 1 ? input.substring(1) : '')\n}\n"]}
@@ -0,0 +1 @@
1
+ export * from './codegen.js';
@@ -0,0 +1,2 @@
1
+ export * from './codegen.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eth/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA","sourcesContent":["export * from './codegen.js'\n"]}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { codegen } from './index.js';
3
+ if (process.argv.length > 3) {
4
+ const abisDir = process.argv[2];
5
+ const targetDir = process.argv[3];
6
+ await codegen(abisDir, targetDir);
7
+ }
8
+ else {
9
+ console.error('Not enough argument');
10
+ process.exit(1);
11
+ }
12
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/eth/codegen/run.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;CAClC;KAAM;IACL,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;CAChB","sourcesContent":["#!/usr/bin/env node\n\nimport { codegen } from './index.js'\n\nif (process.argv.length > 3) {\n const abisDir = process.argv[2]\n const targetDir = process.argv[3]\n await codegen(abisDir, targetDir)\n} else {\n console.error('Not enough argument')\n process.exit(1)\n}\n"]}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFullSignatureForFunction = exports.getFullSignatureForEventPatched = exports.getFullSignatureAsSymbolForFunction = void 0;
4
- function getFullSignatureAsSymbolForFunction(fn) {
1
+ export function getFullSignatureAsSymbolForFunction(fn) {
5
2
  return `${fn.name}_${fn.inputs
6
3
  .map((e) => {
7
4
  if (e.type.type === 'array') {
@@ -13,7 +10,6 @@ function getFullSignatureAsSymbolForFunction(fn) {
13
10
  })
14
11
  .join('_')}`;
15
12
  }
16
- exports.getFullSignatureAsSymbolForFunction = getFullSignatureAsSymbolForFunction;
17
13
  function formatType(type) {
18
14
  if (type.type === 'array') {
19
15
  return formatType(type.itemType) + '[]';
@@ -26,21 +22,19 @@ function formatType(type) {
26
22
  }
27
23
  }
28
24
  // TODO contribute upstream
29
- function getFullSignatureForEventPatched(event) {
25
+ export function getFullSignatureForEventPatched(event) {
30
26
  return `${event.name}(${event.inputs
31
27
  .map((e) => {
32
28
  return formatType(e.type);
33
29
  })
34
30
  .join(',')})`;
35
31
  }
36
- exports.getFullSignatureForEventPatched = getFullSignatureForEventPatched;
37
32
  // TODO check existed func
38
- function getFullSignatureForFunction(fn) {
33
+ export function getFullSignatureForFunction(fn) {
39
34
  return `${fn.name}(${fn.inputs
40
35
  .map((e) => {
41
36
  return formatType(e.type);
42
37
  })
43
38
  .join(',')})`;
44
39
  }
45
- exports.getFullSignatureForFunction = getFullSignatureForFunction;
46
- //# sourceMappingURL=types.cjs.map
40
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/eth/codegen/types.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mCAAmC,CAAC,EAAuB;IACzE,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAA;SAC/C;aAAM;YACL,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;SAC3B;IACH,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;KACxC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QAChC,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;KAC5E;SAAM;QACL,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,+BAA+B,CAAC,KAAuB;IACrE,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AACjB,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,2BAA2B,CAAC,EAAuB;IACjE,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AACjB,CAAC","sourcesContent":["import { EventDeclaration, FunctionDeclaration } from 'typechain'\nimport { EvmType } from 'typechain/dist/parser/parseEvmType.js'\n\nexport function getFullSignatureAsSymbolForFunction(fn: FunctionDeclaration): string {\n return `${fn.name}_${fn.inputs\n .map((e) => {\n if (e.type.type === 'array') {\n return e.type.itemType.originalType + '_array'\n } else {\n return e.type.originalType\n }\n })\n .join('_')}`\n}\n\nfunction formatType(type: EvmType): string {\n if (type.type === 'array') {\n return formatType(type.itemType) + '[]'\n } else if (type.type === 'tuple') {\n return '(' + type.components.map((s) => formatType(s.type)).join(',') + ')'\n } else {\n return type.originalType\n }\n}\n\n// TODO contribute upstream\nexport function getFullSignatureForEventPatched(event: EventDeclaration): string {\n return `${event.name}(${event.inputs\n .map((e) => {\n return formatType(e.type)\n })\n .join(',')})`\n}\n\n// TODO check existed func\nexport function getFullSignatureForFunction(fn: FunctionDeclaration): string {\n return `${fn.name}(${fn.inputs\n .map((e) => {\n return formatType(e.type)\n })\n .join(',')})`\n}\n"]}