@sentio/sdk 2.3.6-rc.1 → 2.4.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 (279) hide show
  1. package/lib/aptos/tests/aptos.test.js.map +1 -1
  2. package/lib/eth/account-processor.d.ts +2 -2
  3. package/lib/eth/account-processor.js +2 -2
  4. package/lib/eth/account-processor.js.map +1 -1
  5. package/lib/eth/builtin/eacaggregatorproxy.d.ts +2 -2
  6. package/lib/eth/builtin/eacaggregatorproxy.js +2 -2
  7. package/lib/eth/builtin/eacaggregatorproxy.js.map +1 -1
  8. package/lib/eth/builtin/erc1155.d.ts +2 -2
  9. package/lib/eth/builtin/erc1155.js +2 -2
  10. package/lib/eth/builtin/erc1155.js.map +1 -1
  11. package/lib/eth/builtin/erc20.d.ts +2 -2
  12. package/lib/eth/builtin/erc20.js +2 -2
  13. package/lib/eth/builtin/erc20.js.map +1 -1
  14. package/lib/eth/builtin/erc20bytes.d.ts +2 -2
  15. package/lib/eth/builtin/erc20bytes.js +2 -2
  16. package/lib/eth/builtin/erc20bytes.js.map +1 -1
  17. package/lib/eth/builtin/erc721.d.ts +2 -2
  18. package/lib/eth/builtin/erc721.js +2 -2
  19. package/lib/eth/builtin/erc721.js.map +1 -1
  20. package/lib/eth/builtin/internal/{eacaggregatorproxy_processor.d.ts → eacaggregatorproxy-processor.d.ts} +0 -0
  21. package/lib/eth/builtin/internal/{eacaggregatorproxy_processor.js → eacaggregatorproxy-processor.js} +1 -1
  22. package/lib/eth/builtin/internal/{eacaggregatorproxy_processor.js.map → eacaggregatorproxy-processor.js.map} +1 -1
  23. package/lib/eth/builtin/internal/{eacaggregatorproxy_test-utils.d.ts → eacaggregatorproxy-test-utils.d.ts} +0 -0
  24. package/lib/eth/builtin/internal/{eacaggregatorproxy_test-utils.js → eacaggregatorproxy-test-utils.js} +2 -2
  25. package/lib/eth/builtin/internal/{eacaggregatorproxy_test-utils.js.map → eacaggregatorproxy-test-utils.js.map} +1 -1
  26. package/lib/eth/builtin/internal/{erc1155_processor.d.ts → erc1155-processor.d.ts} +0 -0
  27. package/lib/eth/builtin/internal/{erc1155_processor.js → erc1155-processor.js} +1 -1
  28. package/lib/eth/builtin/internal/{erc1155_processor.js.map → erc1155-processor.js.map} +1 -1
  29. package/lib/eth/builtin/internal/{erc1155_test-utils.d.ts → erc1155-test-utils.d.ts} +0 -0
  30. package/lib/eth/builtin/internal/{erc1155_test-utils.js → erc1155-test-utils.js} +2 -2
  31. package/lib/eth/builtin/internal/{erc1155_test-utils.js.map → erc1155-test-utils.js.map} +1 -1
  32. package/lib/eth/builtin/internal/{erc20_processor.d.ts → erc20-processor.d.ts} +0 -0
  33. package/lib/eth/builtin/internal/{erc20_processor.js → erc20-processor.js} +1 -1
  34. package/lib/eth/builtin/internal/{erc20_processor.js.map → erc20-processor.js.map} +1 -1
  35. package/lib/eth/builtin/internal/{erc20_test-utils.d.ts → erc20-test-utils.d.ts} +0 -0
  36. package/lib/eth/builtin/internal/{erc20_test-utils.js → erc20-test-utils.js} +2 -2
  37. package/lib/eth/builtin/internal/{erc20_test-utils.js.map → erc20-test-utils.js.map} +1 -1
  38. package/lib/eth/builtin/internal/{erc20bytes_processor.d.ts → erc20bytes-processor.d.ts} +0 -0
  39. package/lib/eth/builtin/internal/{erc20bytes_processor.js → erc20bytes-processor.js} +1 -1
  40. package/lib/eth/builtin/internal/{erc20bytes_processor.js.map → erc20bytes-processor.js.map} +1 -1
  41. package/lib/eth/builtin/internal/{erc20bytes_test-utils.d.ts → erc20bytes-test-utils.d.ts} +0 -0
  42. package/lib/eth/builtin/internal/{erc20bytes_test-utils.js → erc20bytes-test-utils.js} +2 -2
  43. package/lib/eth/builtin/internal/{erc20bytes_test-utils.js.map → erc20bytes-test-utils.js.map} +1 -1
  44. package/lib/eth/builtin/internal/{erc721_processor.d.ts → erc721-processor.d.ts} +0 -0
  45. package/lib/eth/builtin/internal/{erc721_processor.js → erc721-processor.js} +1 -1
  46. package/lib/eth/builtin/internal/{erc721_processor.js.map → erc721-processor.js.map} +1 -1
  47. package/lib/eth/builtin/internal/{erc721_test-utils.d.ts → erc721-test-utils.d.ts} +0 -0
  48. package/lib/eth/builtin/internal/{erc721_test-utils.js → erc721-test-utils.js} +2 -2
  49. package/lib/eth/builtin/internal/{erc721_test-utils.js.map → erc721-test-utils.js.map} +1 -1
  50. package/lib/eth/builtin/internal/{weth9_processor.d.ts → weth9-processor.d.ts} +0 -0
  51. package/lib/eth/builtin/internal/{weth9_processor.js → weth9-processor.js} +1 -1
  52. package/lib/eth/builtin/internal/{weth9_processor.js.map → weth9-processor.js.map} +1 -1
  53. package/lib/eth/builtin/internal/{weth9_test-utils.d.ts → weth9-test-utils.d.ts} +0 -0
  54. package/lib/eth/builtin/internal/{weth9_test-utils.js → weth9-test-utils.js} +2 -2
  55. package/lib/eth/builtin/internal/{weth9_test-utils.js.map → weth9-test-utils.js.map} +1 -1
  56. package/lib/eth/builtin/weth9.d.ts +2 -2
  57. package/lib/eth/builtin/weth9.js +2 -2
  58. package/lib/eth/builtin/weth9.js.map +1 -1
  59. package/lib/eth/codegen/ethers-sentio.js +2 -2
  60. package/lib/eth/codegen/ethers-sentio.js.map +1 -1
  61. package/lib/eth/codegen/file.js +3 -3
  62. package/lib/eth/codegen/file.js.map +1 -1
  63. package/lib/eth/generic-processor.test.js.map +1 -1
  64. package/lib/eth/tests/account.test.d.ts +1 -0
  65. package/lib/eth/tests/account.test.js.map +1 -0
  66. package/lib/eth/tests/codegen.test.d.ts +1 -0
  67. package/lib/eth/tests/codegen.test.js.map +1 -0
  68. package/lib/eth/tests/erc20-template.test.d.ts +1 -0
  69. package/lib/eth/tests/erc20-template.test.js.map +1 -0
  70. package/lib/eth/tests/erc20.d.ts +1 -0
  71. package/lib/eth/tests/erc20.js +52 -0
  72. package/lib/eth/tests/erc20.js.map +1 -0
  73. package/lib/eth/tests/erc20.test.d.ts +1 -0
  74. package/lib/eth/tests/erc20.test.js.map +1 -0
  75. package/lib/eth/tests/error-capture.test.d.ts +1 -0
  76. package/lib/eth/tests/error-capture.test.js.map +1 -0
  77. package/lib/eth/tests/logger.test.d.ts +1 -0
  78. package/lib/eth/tests/logger.test.js.map +1 -0
  79. package/lib/eth/tests/types/anyswaprouter.d.ts +3 -0
  80. package/lib/eth/tests/types/anyswaprouter.js +7 -0
  81. package/lib/eth/tests/types/anyswaprouter.js.map +1 -0
  82. package/lib/eth/tests/types/commitmentpool.d.ts +3 -0
  83. package/lib/eth/tests/types/commitmentpool.js +7 -0
  84. package/lib/eth/tests/types/commitmentpool.js.map +1 -0
  85. package/lib/eth/tests/types/index.d.ts +12 -0
  86. package/lib/eth/tests/types/index.js +16 -0
  87. package/lib/eth/tests/types/index.js.map +1 -0
  88. package/lib/eth/tests/types/internal/AnyswapRouter.d.ts +122 -0
  89. package/lib/eth/tests/types/internal/AnyswapRouter.js +2 -0
  90. package/lib/eth/tests/types/internal/AnyswapRouter.js.map +1 -0
  91. package/lib/eth/tests/types/internal/CommitmentPool.d.ts +176 -0
  92. package/lib/eth/tests/types/internal/CommitmentPool.js +2 -0
  93. package/lib/eth/tests/types/internal/CommitmentPool.js.map +1 -0
  94. package/lib/eth/tests/types/internal/MembershipStakerV3.d.ts +81 -0
  95. package/lib/eth/tests/types/internal/MembershipStakerV3.js +2 -0
  96. package/lib/eth/tests/types/internal/MembershipStakerV3.js.map +1 -0
  97. package/lib/eth/tests/types/internal/Pyth.d.ts +204 -0
  98. package/lib/eth/tests/types/internal/Pyth.js +2 -0
  99. package/lib/eth/tests/types/internal/Pyth.js.map +1 -0
  100. package/lib/eth/tests/types/internal/Seaport.d.ts +350 -0
  101. package/lib/eth/tests/types/internal/Seaport.js +2 -0
  102. package/lib/eth/tests/types/internal/Seaport.js.map +1 -0
  103. package/lib/eth/tests/types/internal/TokenExchange.d.ts +128 -0
  104. package/lib/eth/tests/types/internal/TokenExchange.js +2 -0
  105. package/lib/eth/tests/types/internal/TokenExchange.js.map +1 -0
  106. package/lib/eth/tests/types/internal/anyswaprouter-processor.d.ts +463 -0
  107. package/lib/eth/tests/types/internal/anyswaprouter-processor.js +425 -0
  108. package/lib/eth/tests/types/internal/anyswaprouter-processor.js.map +1 -0
  109. package/lib/eth/tests/types/internal/anyswaprouter-test-utils.d.ts +9 -0
  110. package/lib/eth/tests/types/internal/anyswaprouter-test-utils.js +124 -0
  111. package/lib/eth/tests/types/internal/anyswaprouter-test-utils.js.map +1 -0
  112. package/lib/eth/tests/types/internal/commitmentpool-processor.d.ts +348 -0
  113. package/lib/eth/tests/types/internal/commitmentpool-processor.js +607 -0
  114. package/lib/eth/tests/types/internal/commitmentpool-processor.js.map +1 -0
  115. package/lib/eth/tests/types/internal/commitmentpool-test-utils.d.ts +9 -0
  116. package/lib/eth/tests/types/internal/commitmentpool-test-utils.js +87 -0
  117. package/lib/eth/tests/types/internal/commitmentpool-test-utils.js.map +1 -0
  118. package/lib/eth/tests/types/internal/common.d.ts +10 -0
  119. package/lib/eth/tests/types/internal/common.js +8 -0
  120. package/lib/eth/tests/types/internal/common.js.map +1 -0
  121. package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.d.ts +988 -0
  122. package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.js +1269 -0
  123. package/lib/eth/tests/types/internal/factories/AnyswapRouter__factory.js.map +1 -0
  124. package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.d.ts +792 -0
  125. package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.js +1040 -0
  126. package/lib/eth/tests/types/internal/factories/CommitmentPool__factory.js.map +1 -0
  127. package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.d.ts +549 -0
  128. package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.js +721 -0
  129. package/lib/eth/tests/types/internal/factories/MembershipStakerV3__factory.js.map +1 -0
  130. package/lib/eth/tests/types/internal/factories/Pyth__factory.d.ts +1130 -0
  131. package/lib/eth/tests/types/internal/factories/Pyth__factory.js +1486 -0
  132. package/lib/eth/tests/types/internal/factories/Pyth__factory.js.map +1 -0
  133. package/lib/eth/tests/types/internal/factories/Seaport__factory.d.ts +2018 -0
  134. package/lib/eth/tests/types/internal/factories/Seaport__factory.js +2610 -0
  135. package/lib/eth/tests/types/internal/factories/Seaport__factory.js.map +1 -0
  136. package/lib/eth/tests/types/internal/factories/TokenExchange__factory.d.ts +651 -0
  137. package/lib/eth/tests/types/internal/factories/TokenExchange__factory.js +853 -0
  138. package/lib/eth/tests/types/internal/factories/TokenExchange__factory.js.map +1 -0
  139. package/lib/eth/tests/types/internal/factories/index.d.ts +6 -0
  140. package/lib/eth/tests/types/internal/factories/index.js +10 -0
  141. package/lib/eth/tests/types/internal/factories/index.js.map +1 -0
  142. package/lib/eth/tests/types/internal/index.d.ts +13 -0
  143. package/lib/eth/tests/types/internal/index.js +8 -0
  144. package/lib/eth/tests/types/internal/index.js.map +1 -0
  145. package/lib/eth/tests/types/internal/membershipstakerv3-processor.d.ts +287 -0
  146. package/lib/eth/tests/types/internal/membershipstakerv3-processor.js +596 -0
  147. package/lib/eth/tests/types/internal/membershipstakerv3-processor.js.map +1 -0
  148. package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.d.ts +11 -0
  149. package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.js +109 -0
  150. package/lib/eth/tests/types/internal/membershipstakerv3-test-utils.js.map +1 -0
  151. package/lib/eth/tests/types/internal/pyth-processor.d.ts +422 -0
  152. package/lib/eth/tests/types/internal/pyth-processor.js +890 -0
  153. package/lib/eth/tests/types/internal/pyth-processor.js.map +1 -0
  154. package/lib/eth/tests/types/internal/pyth-test-utils.d.ts +13 -0
  155. package/lib/eth/tests/types/internal/pyth-test-utils.js +131 -0
  156. package/lib/eth/tests/types/internal/pyth-test-utils.js.map +1 -0
  157. package/lib/eth/tests/types/internal/seaport-processor.d.ts +211 -0
  158. package/lib/eth/tests/types/internal/seaport-processor.js +237 -0
  159. package/lib/eth/tests/types/internal/seaport-processor.js.map +1 -0
  160. package/lib/eth/tests/types/internal/seaport-test-utils.d.ts +6 -0
  161. package/lib/eth/tests/types/internal/seaport-test-utils.js +61 -0
  162. package/lib/eth/tests/types/internal/seaport-test-utils.js.map +1 -0
  163. package/lib/eth/tests/types/internal/tokenexchange-processor.d.ts +334 -0
  164. package/lib/eth/tests/types/internal/tokenexchange-processor.js +667 -0
  165. package/lib/eth/tests/types/internal/tokenexchange-processor.js.map +1 -0
  166. package/lib/eth/tests/types/internal/tokenexchange-test-utils.d.ts +13 -0
  167. package/lib/eth/tests/types/internal/tokenexchange-test-utils.js +149 -0
  168. package/lib/eth/tests/types/internal/tokenexchange-test-utils.js.map +1 -0
  169. package/lib/eth/tests/types/membershipstakerv3.d.ts +3 -0
  170. package/lib/eth/tests/types/membershipstakerv3.js +7 -0
  171. package/lib/eth/tests/types/membershipstakerv3.js.map +1 -0
  172. package/lib/eth/tests/types/pyth.d.ts +3 -0
  173. package/lib/eth/tests/types/pyth.js +7 -0
  174. package/lib/eth/tests/types/pyth.js.map +1 -0
  175. package/lib/eth/tests/types/seaport.d.ts +3 -0
  176. package/lib/eth/tests/types/seaport.js +7 -0
  177. package/lib/eth/tests/types/seaport.js.map +1 -0
  178. package/lib/eth/tests/types/tokenexchange.d.ts +3 -0
  179. package/lib/eth/tests/types/tokenexchange.js +7 -0
  180. package/lib/eth/tests/types/tokenexchange.js.map +1 -0
  181. package/lib/solana/builtin/types.d.ts +8 -8
  182. package/lib/solana/tests/solana.test.js.map +1 -1
  183. package/lib/sui/sui-processor.js +2 -8
  184. package/lib/sui/sui-processor.js.map +1 -1
  185. package/lib/sui/tests/sui.test.js.map +1 -1
  186. package/lib/sui/utils.d.ts +2 -0
  187. package/lib/sui/utils.js +11 -0
  188. package/lib/sui/utils.js.map +1 -0
  189. package/lib/testing/aptos-facet.d.ts +12 -0
  190. package/lib/testing/aptos-facet.js +91 -0
  191. package/lib/testing/aptos-facet.js.map +1 -0
  192. package/lib/testing/eth-facet.d.ts +27 -0
  193. package/lib/testing/eth-facet.js +211 -0
  194. package/lib/testing/eth-facet.js.map +1 -0
  195. package/lib/testing/solana-facet.d.ts +7 -0
  196. package/lib/testing/solana-facet.js +22 -0
  197. package/lib/testing/solana-facet.js.map +1 -0
  198. package/lib/testing/sui-facet.d.ts +12 -0
  199. package/lib/testing/sui-facet.js +103 -0
  200. package/lib/testing/sui-facet.js.map +1 -0
  201. package/lib/testing/test-processor-server.d.ts +9 -23
  202. package/lib/testing/test-processor-server.js +13 -227
  203. package/lib/testing/test-processor-server.js.map +1 -1
  204. package/lib/utils/dex-price.js +1 -1
  205. package/lib/utils/dex-price.js.map +1 -1
  206. package/lib/utils/token.js +1 -1
  207. package/lib/utils/token.js.map +1 -1
  208. package/package.json +5 -5
  209. package/src/eth/account-processor.ts +2 -5
  210. package/src/eth/builtin/eacaggregatorproxy.ts +2 -2
  211. package/src/eth/builtin/erc1155.ts +2 -2
  212. package/src/eth/builtin/erc20.ts +2 -2
  213. package/src/eth/builtin/erc20bytes.ts +2 -2
  214. package/src/eth/builtin/erc721.ts +2 -2
  215. package/src/eth/builtin/internal/{eacaggregatorproxy_processor.ts → eacaggregatorproxy-processor.ts} +0 -0
  216. package/src/eth/builtin/internal/{eacaggregatorproxy_test-utils.ts → eacaggregatorproxy-test-utils.ts} +1 -1
  217. package/src/eth/builtin/internal/{erc1155_processor.ts → erc1155-processor.ts} +0 -0
  218. package/src/eth/builtin/internal/{erc1155_test-utils.ts → erc1155-test-utils.ts} +1 -1
  219. package/src/eth/builtin/internal/{erc20_processor.ts → erc20-processor.ts} +0 -0
  220. package/src/eth/builtin/internal/{erc20_test-utils.ts → erc20-test-utils.ts} +1 -1
  221. package/src/eth/builtin/internal/{erc20bytes_processor.ts → erc20bytes-processor.ts} +0 -0
  222. package/src/eth/builtin/internal/{erc20bytes_test-utils.ts → erc20bytes-test-utils.ts} +1 -1
  223. package/src/eth/builtin/internal/{erc721_processor.ts → erc721-processor.ts} +0 -0
  224. package/src/eth/builtin/internal/{erc721_test-utils.ts → erc721-test-utils.ts} +1 -1
  225. package/src/eth/builtin/internal/{weth9_processor.ts → weth9-processor.ts} +0 -0
  226. package/src/eth/builtin/internal/{weth9_test-utils.ts → weth9-test-utils.ts} +1 -1
  227. package/src/eth/builtin/weth9.ts +2 -2
  228. package/src/eth/codegen/ethers-sentio.ts +2 -2
  229. package/src/eth/codegen/file.ts +3 -3
  230. package/src/eth/tests/abis/eth/CommitmentPool.json +1034 -0
  231. package/src/eth/tests/abis/eth/MembershipStakerV3.json +706 -0
  232. package/src/eth/tests/abis/eth/Pyth.json +1471 -0
  233. package/src/eth/tests/abis/eth/Seaport.json +2595 -0
  234. package/src/eth/tests/abis/eth/TokenExchange.json +838 -0
  235. package/src/eth/tests/abis/eth/anyswapRouter.json +490 -0
  236. package/src/eth/tests/erc20.ts +63 -0
  237. package/src/eth/tests/types/anyswaprouter.ts +7 -0
  238. package/src/eth/tests/types/commitmentpool.ts +7 -0
  239. package/src/eth/tests/types/index.ts +33 -0
  240. package/src/eth/tests/types/internal/AnyswapRouter.ts +122 -0
  241. package/src/eth/tests/types/internal/CommitmentPool.ts +208 -0
  242. package/src/eth/tests/types/internal/MembershipStakerV3.ts +108 -0
  243. package/src/eth/tests/types/internal/Pyth.ts +246 -0
  244. package/src/eth/tests/types/internal/Seaport.ts +389 -0
  245. package/src/eth/tests/types/internal/TokenExchange.ts +142 -0
  246. package/src/eth/tests/types/internal/anyswaprouter-processor.ts +1396 -0
  247. package/src/eth/tests/types/internal/anyswaprouter-test-utils.ts +187 -0
  248. package/src/eth/tests/types/internal/commitmentpool-processor.ts +1575 -0
  249. package/src/eth/tests/types/internal/commitmentpool-test-utils.ts +150 -0
  250. package/src/eth/tests/types/internal/common.ts +23 -0
  251. package/src/eth/tests/types/internal/factories/AnyswapRouter__factory.ts +1278 -0
  252. package/src/eth/tests/types/internal/factories/CommitmentPool__factory.ts +1049 -0
  253. package/src/eth/tests/types/internal/factories/MembershipStakerV3__factory.ts +730 -0
  254. package/src/eth/tests/types/internal/factories/Pyth__factory.ts +1492 -0
  255. package/src/eth/tests/types/internal/factories/Seaport__factory.ts +2616 -0
  256. package/src/eth/tests/types/internal/factories/TokenExchange__factory.ts +862 -0
  257. package/src/eth/tests/types/internal/factories/index.ts +9 -0
  258. package/src/eth/tests/types/internal/index.ts +16 -0
  259. package/src/eth/tests/types/internal/membershipstakerv3-processor.ts +1399 -0
  260. package/src/eth/tests/types/internal/membershipstakerv3-test-utils.ts +188 -0
  261. package/src/eth/tests/types/internal/pyth-processor.ts +2043 -0
  262. package/src/eth/tests/types/internal/pyth-test-utils.ts +226 -0
  263. package/src/eth/tests/types/internal/seaport-processor.ts +678 -0
  264. package/src/eth/tests/types/internal/seaport-test-utils.ts +100 -0
  265. package/src/eth/tests/types/internal/tokenexchange-processor.ts +1570 -0
  266. package/src/eth/tests/types/internal/tokenexchange-test-utils.ts +244 -0
  267. package/src/eth/tests/types/membershipstakerv3.ts +7 -0
  268. package/src/eth/tests/types/pyth.ts +7 -0
  269. package/src/eth/tests/types/seaport.ts +7 -0
  270. package/src/eth/tests/types/tokenexchange.ts +7 -0
  271. package/src/sui/sui-processor.ts +2 -7
  272. package/src/sui/utils.ts +11 -0
  273. package/src/testing/aptos-facet.ts +111 -0
  274. package/src/testing/eth-facet.ts +233 -0
  275. package/src/testing/solana-facet.ts +25 -0
  276. package/src/testing/sui-facet.ts +119 -0
  277. package/src/testing/test-processor-server.ts +15 -252
  278. package/src/utils/dex-price.ts +1 -1
  279. package/src/utils/token.ts +1 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenexchange-processor.js","sourceRoot":"","sources":["../../../../../src/eth/tests/types/internal/tokenexchange-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { BigNumberish, Overrides } from \"ethers\";\nimport { Networkish } from \"ethers/providers\";\nimport {\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} from \"@sentio/sdk/eth\";\nimport { EthFetchConfig } from \"@sentio/protos\";\n\nimport { TokenExchange, TokenExchange__factory } from \"./index.js\";\nimport {\n TokenExchangeEvent,\n TokenExchangeEventFilter,\n AddLiquidityEvent,\n AddLiquidityEventFilter,\n RemoveLiquidityEvent,\n RemoveLiquidityEventFilter,\n RemoveLiquidityOneEvent,\n RemoveLiquidityOneEventFilter,\n RemoveLiquidityImbalanceEvent,\n RemoveLiquidityImbalanceEventFilter,\n CommitNewAdminEvent,\n CommitNewAdminEventFilter,\n NewAdminEvent,\n NewAdminEventFilter,\n CommitNewFeeEvent,\n CommitNewFeeEventFilter,\n NewFeeEvent,\n NewFeeEventFilter,\n RampAEvent,\n RampAEventFilter,\n StopRampAEvent,\n StopRampAEventFilter,\n} from \"./TokenExchange.js\";\n\nexport interface ACallObject {}\n\nexport type ACallTrace = TypedCallTrace<[], ACallObject> & Trace;\n\nexport interface Get_virtual_priceCallObject {}\n\nexport type Get_virtual_priceCallTrace = TypedCallTrace<\n [],\n Get_virtual_priceCallObject\n> &\n Trace;\n\nexport interface Calc_token_amountCallObject {\n amounts: [bigint, bigint, bigint];\n deposit: boolean;\n}\n\nexport type Calc_token_amountCallTrace = TypedCallTrace<\n [[bigint, bigint, bigint], boolean],\n Calc_token_amountCallObject\n> &\n Trace;\n\nexport interface Add_liquidityCallObject {\n amounts: [bigint, bigint, bigint];\n min_mint_amount: bigint;\n}\n\nexport type Add_liquidityCallTrace = TypedCallTrace<\n [[bigint, bigint, bigint], bigint],\n Add_liquidityCallObject\n> &\n Trace;\n\nexport interface Get_dyCallObject {\n i: bigint;\n j: bigint;\n dx: bigint;\n}\n\nexport type Get_dyCallTrace = TypedCallTrace<\n [bigint, bigint, bigint],\n Get_dyCallObject\n> &\n Trace;\n\nexport interface Get_dy_underlyingCallObject {\n i: bigint;\n j: bigint;\n dx: bigint;\n}\n\nexport type Get_dy_underlyingCallTrace = TypedCallTrace<\n [bigint, bigint, bigint],\n Get_dy_underlyingCallObject\n> &\n Trace;\n\nexport interface ExchangeCallObject {\n i: bigint;\n j: bigint;\n dx: bigint;\n min_dy: bigint;\n}\n\nexport type ExchangeCallTrace = TypedCallTrace<\n [bigint, bigint, bigint, bigint],\n ExchangeCallObject\n> &\n Trace;\n\nexport interface Remove_liquidityCallObject {\n _amount: bigint;\n min_amounts: [bigint, bigint, bigint];\n}\n\nexport type Remove_liquidityCallTrace = TypedCallTrace<\n [bigint, [bigint, bigint, bigint]],\n Remove_liquidityCallObject\n> &\n Trace;\n\nexport interface Remove_liquidity_imbalanceCallObject {\n amounts: [bigint, bigint, bigint];\n max_burn_amount: bigint;\n}\n\nexport type Remove_liquidity_imbalanceCallTrace = TypedCallTrace<\n [[bigint, bigint, bigint], bigint],\n Remove_liquidity_imbalanceCallObject\n> &\n Trace;\n\nexport interface Calc_withdraw_one_coinCallObject {\n _token_amount: bigint;\n i: bigint;\n}\n\nexport type Calc_withdraw_one_coinCallTrace = TypedCallTrace<\n [bigint, bigint],\n Calc_withdraw_one_coinCallObject\n> &\n Trace;\n\nexport interface Remove_liquidity_one_coinCallObject {\n _token_amount: bigint;\n i: bigint;\n min_amount: bigint;\n}\n\nexport type Remove_liquidity_one_coinCallTrace = TypedCallTrace<\n [bigint, bigint, bigint],\n Remove_liquidity_one_coinCallObject\n> &\n Trace;\n\nexport interface Ramp_ACallObject {\n _future_A: bigint;\n _future_time: bigint;\n}\n\nexport type Ramp_ACallTrace = TypedCallTrace<\n [bigint, bigint],\n Ramp_ACallObject\n> &\n Trace;\n\nexport interface Stop_ramp_ACallObject {}\n\nexport type Stop_ramp_ACallTrace = TypedCallTrace<[], Stop_ramp_ACallObject> &\n Trace;\n\nexport interface Commit_new_feeCallObject {\n new_fee: bigint;\n new_admin_fee: bigint;\n}\n\nexport type Commit_new_feeCallTrace = TypedCallTrace<\n [bigint, bigint],\n Commit_new_feeCallObject\n> &\n Trace;\n\nexport interface Apply_new_feeCallObject {}\n\nexport type Apply_new_feeCallTrace = TypedCallTrace<\n [],\n Apply_new_feeCallObject\n> &\n Trace;\n\nexport interface Revert_new_parametersCallObject {}\n\nexport type Revert_new_parametersCallTrace = TypedCallTrace<\n [],\n Revert_new_parametersCallObject\n> &\n Trace;\n\nexport interface Commit_transfer_ownershipCallObject {\n _owner: string;\n}\n\nexport type Commit_transfer_ownershipCallTrace = TypedCallTrace<\n [string],\n Commit_transfer_ownershipCallObject\n> &\n Trace;\n\nexport interface Apply_transfer_ownershipCallObject {}\n\nexport type Apply_transfer_ownershipCallTrace = TypedCallTrace<\n [],\n Apply_transfer_ownershipCallObject\n> &\n Trace;\n\nexport interface Revert_transfer_ownershipCallObject {}\n\nexport type Revert_transfer_ownershipCallTrace = TypedCallTrace<\n [],\n Revert_transfer_ownershipCallObject\n> &\n Trace;\n\nexport interface Admin_balancesCallObject {\n i: bigint;\n}\n\nexport type Admin_balancesCallTrace = TypedCallTrace<\n [bigint],\n Admin_balancesCallObject\n> &\n Trace;\n\nexport interface Withdraw_admin_feesCallObject {}\n\nexport type Withdraw_admin_feesCallTrace = TypedCallTrace<\n [],\n Withdraw_admin_feesCallObject\n> &\n Trace;\n\nexport interface Donate_admin_feesCallObject {}\n\nexport type Donate_admin_feesCallTrace = TypedCallTrace<\n [],\n Donate_admin_feesCallObject\n> &\n Trace;\n\nexport interface Kill_meCallObject {}\n\nexport type Kill_meCallTrace = TypedCallTrace<[], Kill_meCallObject> & Trace;\n\nexport interface Unkill_meCallObject {}\n\nexport type Unkill_meCallTrace = TypedCallTrace<[], Unkill_meCallObject> &\n Trace;\n\nexport interface CoinsCallObject {\n arg0: bigint;\n}\n\nexport type CoinsCallTrace = TypedCallTrace<[bigint], CoinsCallObject> & Trace;\n\nexport interface BalancesCallObject {\n arg0: bigint;\n}\n\nexport type BalancesCallTrace = TypedCallTrace<[bigint], BalancesCallObject> &\n Trace;\n\nexport interface FeeCallObject {}\n\nexport type FeeCallTrace = TypedCallTrace<[], FeeCallObject> & Trace;\n\nexport interface Admin_feeCallObject {}\n\nexport type Admin_feeCallTrace = TypedCallTrace<[], Admin_feeCallObject> &\n Trace;\n\nexport interface OwnerCallObject {}\n\nexport type OwnerCallTrace = TypedCallTrace<[], OwnerCallObject> & Trace;\n\nexport interface Initial_ACallObject {}\n\nexport type Initial_ACallTrace = TypedCallTrace<[], Initial_ACallObject> &\n Trace;\n\nexport interface Future_ACallObject {}\n\nexport type Future_ACallTrace = TypedCallTrace<[], Future_ACallObject> & Trace;\n\nexport interface Initial_A_timeCallObject {}\n\nexport type Initial_A_timeCallTrace = TypedCallTrace<\n [],\n Initial_A_timeCallObject\n> &\n Trace;\n\nexport interface Future_A_timeCallObject {}\n\nexport type Future_A_timeCallTrace = TypedCallTrace<\n [],\n Future_A_timeCallObject\n> &\n Trace;\n\nexport interface Admin_actions_deadlineCallObject {}\n\nexport type Admin_actions_deadlineCallTrace = TypedCallTrace<\n [],\n Admin_actions_deadlineCallObject\n> &\n Trace;\n\nexport interface Transfer_ownership_deadlineCallObject {}\n\nexport type Transfer_ownership_deadlineCallTrace = TypedCallTrace<\n [],\n Transfer_ownership_deadlineCallObject\n> &\n Trace;\n\nexport interface Future_feeCallObject {}\n\nexport type Future_feeCallTrace = TypedCallTrace<[], Future_feeCallObject> &\n Trace;\n\nexport interface Future_admin_feeCallObject {}\n\nexport type Future_admin_feeCallTrace = TypedCallTrace<\n [],\n Future_admin_feeCallObject\n> &\n Trace;\n\nexport interface Future_ownerCallObject {}\n\nexport type Future_ownerCallTrace = TypedCallTrace<[], Future_ownerCallObject> &\n Trace;\n\nconst templateContract = TokenExchange__factory.connect(\"0x0\", DummyProvider);\n\nexport class TokenExchangeContractView extends ContractView<TokenExchange> {\n constructor(contract: TokenExchange) {\n super(contract);\n }\n\n async A(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"A()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async get_virtual_price(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"get_virtual_price()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async calc_token_amount(\n amounts: [BigNumberish, BigNumberish, BigNumberish],\n deposit: boolean,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\n \"calc_token_amount(uint256[],bool)\"\n )(amounts, deposit, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async get_dy(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"get_dy(int128,int128,uint256)\")(\n i,\n j,\n dx,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async get_dy_underlying(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\n \"get_dy_underlying(int128,int128,uint256)\"\n )(i, j, dx, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async calc_withdraw_one_coin(\n _token_amount: BigNumberish,\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\n \"calc_withdraw_one_coin(uint256,int128)\"\n )(_token_amount, i, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async admin_balances(\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"admin_balances(uint256)\")(\n i,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async coins(arg0: BigNumberish, overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"coins(uint256)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async balances(arg0: BigNumberish, overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"balances(uint256)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"fee()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async admin_fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"admin_fee()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async owner(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"owner()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async initial_A(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"initial_A()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_A(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_A()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async initial_A_time(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"initial_A_time()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_A_time(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_A_time()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async admin_actions_deadline(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"admin_actions_deadline()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async transfer_ownership_deadline(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"transfer_ownership_deadline()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_fee()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_admin_fee(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"future_admin_fee()\")(\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async future_owner(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"future_owner()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n}\n\nexport class TokenExchangeBoundContractView extends BoundContractView<\n TokenExchange,\n TokenExchangeContractView\n> {\n async A(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.A(overrides || {});\n }\n\n async get_virtual_price(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.get_virtual_price(overrides || {});\n }\n\n async calc_token_amount(\n amounts: [BigNumberish, BigNumberish, BigNumberish],\n deposit: boolean,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.calc_token_amount(amounts, deposit, overrides || {});\n }\n\n async get_dy(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.get_dy(i, j, dx, overrides || {});\n }\n\n async get_dy_underlying(\n i: BigNumberish,\n j: BigNumberish,\n dx: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.get_dy_underlying(i, j, dx, overrides || {});\n }\n\n async calc_withdraw_one_coin(\n _token_amount: BigNumberish,\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.calc_withdraw_one_coin(\n _token_amount,\n i,\n overrides || {}\n );\n }\n\n async admin_balances(\n i: BigNumberish,\n overrides?: Overrides\n ): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.admin_balances(i, overrides || {});\n }\n\n async coins(arg0: BigNumberish, overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.coins(arg0, overrides || {});\n }\n\n async balances(arg0: BigNumberish, overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.balances(arg0, overrides || {});\n }\n\n async fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.fee(overrides || {});\n }\n\n async admin_fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.admin_fee(overrides || {});\n }\n\n async owner(overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.owner(overrides || {});\n }\n\n async initial_A(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.initial_A(overrides || {});\n }\n\n async future_A(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_A(overrides || {});\n }\n\n async initial_A_time(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.initial_A_time(overrides || {});\n }\n\n async future_A_time(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_A_time(overrides || {});\n }\n\n async admin_actions_deadline(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.admin_actions_deadline(overrides || {});\n }\n\n async transfer_ownership_deadline(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.transfer_ownership_deadline(overrides || {});\n }\n\n async future_fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_fee(overrides || {});\n }\n\n async future_admin_fee(overrides?: Overrides): Promise<bigint> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_admin_fee(overrides || {});\n }\n\n async future_owner(overrides?: Overrides): Promise<string> {\n if (!overrides && this.context) {\n overrides = {\n blockTag: toBlockTag(this.context.blockNumber),\n };\n }\n return await this.view.future_owner(overrides || {});\n }\n}\n\nexport type TokenExchangeContext = ContractContext<\n TokenExchange,\n TokenExchangeBoundContractView\n>;\n\nexport class TokenExchangeProcessor extends BaseProcessor<\n TokenExchange,\n TokenExchangeBoundContractView\n> {\n onEventTokenExchange(\n handler: (event: TokenExchangeEvent, ctx: TokenExchangeContext) => void,\n filter?: TokenExchangeEventFilter | TokenExchangeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"TokenExchange(address,int128,uint256,int128,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventAddLiquidity(\n handler: (event: AddLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: AddLiquidityEventFilter | AddLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"AddLiquidity(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidity(\n handler: (event: RemoveLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: RemoveLiquidityEventFilter | RemoveLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidity(address,uint256[],uint256[],uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityOne(\n handler: (\n event: RemoveLiquidityOneEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?: RemoveLiquidityOneEventFilter | RemoveLiquidityOneEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityOne(address,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityImbalance(\n handler: (\n event: RemoveLiquidityImbalanceEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?:\n | RemoveLiquidityImbalanceEventFilter\n | RemoveLiquidityImbalanceEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewAdmin(\n handler: (event: CommitNewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewAdminEventFilter | CommitNewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"CommitNewAdmin(uint256,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewAdmin(\n handler: (event: NewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: NewAdminEventFilter | NewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewAdmin(address)\"](null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewFee(\n handler: (event: CommitNewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewFeeEventFilter | CommitNewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"CommitNewFee(uint256,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewFee(\n handler: (event: NewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: NewFeeEventFilter | NewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewFee(uint256,uint256)\"](null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRampA(\n handler: (event: RampAEvent, ctx: TokenExchangeContext) => void,\n filter?: RampAEventFilter | RampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RampA(uint256,uint256,uint256,uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventStopRampA(\n handler: (event: StopRampAEvent, ctx: TokenExchangeContext) => void,\n filter?: StopRampAEventFilter | StopRampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"StopRampA(uint256,uint256)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onCallA(\n handler: (call: ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xf446c1d0\", handler, fetchConfig);\n }\n\n onCallGet_virtual_price(\n handler: (\n call: Get_virtual_priceCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xbb7b8b80\", handler, fetchConfig);\n }\n\n onCallCalc_token_amount(\n handler: (\n call: Calc_token_amountCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3883e119\", handler, fetchConfig);\n }\n\n onCallAdd_liquidity(\n handler: (call: Add_liquidityCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x4515cef3\", handler, fetchConfig);\n }\n\n onCallGet_dy(\n handler: (call: Get_dyCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x5e0d443f\", handler, fetchConfig);\n }\n\n onCallGet_dy_underlying(\n handler: (\n call: Get_dy_underlyingCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x07211ef7\", handler, fetchConfig);\n }\n\n onCallExchange(\n handler: (call: ExchangeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3df02124\", handler, fetchConfig);\n }\n\n onCallRemove_liquidity(\n handler: (\n call: Remove_liquidityCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xecb586a5\", handler, fetchConfig);\n }\n\n onCallRemove_liquidity_imbalance(\n handler: (\n call: Remove_liquidity_imbalanceCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x9fdaea0c\", handler, fetchConfig);\n }\n\n onCallCalc_withdraw_one_coin(\n handler: (\n call: Calc_withdraw_one_coinCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xcc2b27d7\", handler, fetchConfig);\n }\n\n onCallRemove_liquidity_one_coin(\n handler: (\n call: Remove_liquidity_one_coinCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x1a4d01d2\", handler, fetchConfig);\n }\n\n onCallRamp_A(\n handler: (call: Ramp_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3c157e64\", handler, fetchConfig);\n }\n\n onCallStop_ramp_A(\n handler: (call: Stop_ramp_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x551a6588\", handler, fetchConfig);\n }\n\n onCallCommit_new_fee(\n handler: (call: Commit_new_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x5b5a1467\", handler, fetchConfig);\n }\n\n onCallApply_new_fee(\n handler: (call: Apply_new_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x4f12fe97\", handler, fetchConfig);\n }\n\n onCallRevert_new_parameters(\n handler: (\n call: Revert_new_parametersCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x226840fb\", handler, fetchConfig);\n }\n\n onCallCommit_transfer_ownership(\n handler: (\n call: Commit_transfer_ownershipCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x6b441a40\", handler, fetchConfig);\n }\n\n onCallApply_transfer_ownership(\n handler: (\n call: Apply_transfer_ownershipCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x6a1c05ae\", handler, fetchConfig);\n }\n\n onCallRevert_transfer_ownership(\n handler: (\n call: Revert_transfer_ownershipCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x86fbf193\", handler, fetchConfig);\n }\n\n onCallAdmin_balances(\n handler: (call: Admin_balancesCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe2e7d264\", handler, fetchConfig);\n }\n\n onCallWithdraw_admin_fees(\n handler: (\n call: Withdraw_admin_feesCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x30c54085\", handler, fetchConfig);\n }\n\n onCallDonate_admin_fees(\n handler: (\n call: Donate_admin_feesCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x524c3901\", handler, fetchConfig);\n }\n\n onCallKill_me(\n handler: (call: Kill_meCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe3698853\", handler, fetchConfig);\n }\n\n onCallUnkill_me(\n handler: (call: Unkill_meCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x3046f972\", handler, fetchConfig);\n }\n\n onCallCoins(\n handler: (call: CoinsCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xc6610657\", handler, fetchConfig);\n }\n\n onCallBalances(\n handler: (call: BalancesCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x4903b0d1\", handler, fetchConfig);\n }\n\n onCallFee(\n handler: (call: FeeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xddca3f43\", handler, fetchConfig);\n }\n\n onCallAdmin_fee(\n handler: (call: Admin_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xfee3f7f9\", handler, fetchConfig);\n }\n\n onCallOwner(\n handler: (call: OwnerCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x8da5cb5b\", handler, fetchConfig);\n }\n\n onCallInitial_A(\n handler: (call: Initial_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x5409491a\", handler, fetchConfig);\n }\n\n onCallFuture_A(\n handler: (call: Future_ACallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xb4b577ad\", handler, fetchConfig);\n }\n\n onCallInitial_A_time(\n handler: (call: Initial_A_timeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x2081066c\", handler, fetchConfig);\n }\n\n onCallFuture_A_time(\n handler: (call: Future_A_timeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x14052288\", handler, fetchConfig);\n }\n\n onCallAdmin_actions_deadline(\n handler: (\n call: Admin_actions_deadlineCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x405e28f8\", handler, fetchConfig);\n }\n\n onCallTransfer_ownership_deadline(\n handler: (\n call: Transfer_ownership_deadlineCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe0a0b586\", handler, fetchConfig);\n }\n\n onCallFuture_fee(\n handler: (call: Future_feeCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x58680d0b\", handler, fetchConfig);\n }\n\n onCallFuture_admin_fee(\n handler: (\n call: Future_admin_feeCallTrace,\n ctx: TokenExchangeContext\n ) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0xe3824462\", handler, fetchConfig);\n }\n\n onCallFuture_owner(\n handler: (call: Future_ownerCallTrace, ctx: TokenExchangeContext) => void,\n fetchConfig?: EthFetchConfig\n ) {\n return super.onTrace(\"0x1ec0cdc1\", handler, fetchConfig);\n }\n\n public static filters = {\n TokenExchange(\n buyer?: string | null,\n sold_id?: null,\n tokens_sold?: null,\n bought_id?: null,\n tokens_bought?: null\n ) {\n return templateContract.filters[\n \"TokenExchange(address,int128,uint256,int128,uint256)\"\n ](buyer, sold_id, tokens_sold, bought_id, tokens_bought);\n },\n AddLiquidity(\n provider?: string | null,\n token_amounts?: null,\n fees?: null,\n invariant?: null,\n token_supply?: null\n ) {\n return templateContract.filters[\n \"AddLiquidity(address,uint256[],uint256[],uint256,uint256)\"\n ](provider, token_amounts, fees, invariant, token_supply);\n },\n RemoveLiquidity(\n provider?: string | null,\n token_amounts?: null,\n fees?: null,\n token_supply?: null\n ) {\n return templateContract.filters[\n \"RemoveLiquidity(address,uint256[],uint256[],uint256)\"\n ](provider, token_amounts, fees, token_supply);\n },\n RemoveLiquidityOne(\n provider?: string | null,\n token_amount?: null,\n coin_amount?: null\n ) {\n return templateContract.filters[\n \"RemoveLiquidityOne(address,uint256,uint256)\"\n ](provider, token_amount, coin_amount);\n },\n RemoveLiquidityImbalance(\n provider?: string | null,\n token_amounts?: null,\n fees?: null,\n invariant?: null,\n token_supply?: null\n ) {\n return templateContract.filters[\n \"RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)\"\n ](provider, token_amounts, fees, invariant, token_supply);\n },\n CommitNewAdmin(deadline?: BigNumberish | null, admin?: string | null) {\n return templateContract.filters[\"CommitNewAdmin(uint256,address)\"](\n deadline,\n admin\n );\n },\n NewAdmin(admin?: string | null) {\n return templateContract.filters[\"NewAdmin(address)\"](admin);\n },\n CommitNewFee(deadline?: BigNumberish | null, fee?: null, admin_fee?: null) {\n return templateContract.filters[\"CommitNewFee(uint256,uint256,uint256)\"](\n deadline,\n fee,\n admin_fee\n );\n },\n NewFee(fee?: null, admin_fee?: null) {\n return templateContract.filters[\"NewFee(uint256,uint256)\"](\n fee,\n admin_fee\n );\n },\n RampA(old_A?: null, new_A?: null, initial_time?: null, future_time?: null) {\n return templateContract.filters[\"RampA(uint256,uint256,uint256,uint256)\"](\n old_A,\n new_A,\n initial_time,\n future_time\n );\n },\n StopRampA(A?: null, t?: null) {\n return templateContract.filters[\"StopRampA(uint256,uint256)\"](A, t);\n },\n };\n\n protected CreateBoundContractView(): TokenExchangeBoundContractView {\n const view = getTokenExchangeContract(\n this.config.address,\n this.config.network\n );\n return new TokenExchangeBoundContractView(this.config.address, view);\n }\n\n public static bind(options: BindOptions): TokenExchangeProcessor {\n if (!options.name) {\n options.name = \"TokenExchange\";\n }\n let processor = getProcessor(options) as TokenExchangeProcessor;\n if (!processor) {\n processor = new TokenExchangeProcessor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n}\n\nexport class TokenExchangeProcessorTemplate extends BaseProcessorTemplate<\n TokenExchange,\n TokenExchangeBoundContractView\n> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"TokenExchange\";\n }\n let processor = getProcessor(options) as TokenExchangeProcessor;\n if (!processor) {\n processor = new TokenExchangeProcessor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n\n onEventTokenExchange(\n handler: (event: TokenExchangeEvent, ctx: TokenExchangeContext) => void,\n filter?: TokenExchangeEventFilter | TokenExchangeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"TokenExchange(address,int128,uint256,int128,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventAddLiquidity(\n handler: (event: AddLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: AddLiquidityEventFilter | AddLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"AddLiquidity(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidity(\n handler: (event: RemoveLiquidityEvent, ctx: TokenExchangeContext) => void,\n filter?: RemoveLiquidityEventFilter | RemoveLiquidityEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidity(address,uint256[],uint256[],uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityOne(\n handler: (\n event: RemoveLiquidityOneEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?: RemoveLiquidityOneEventFilter | RemoveLiquidityOneEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityOne(address,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRemoveLiquidityImbalance(\n handler: (\n event: RemoveLiquidityImbalanceEvent,\n ctx: TokenExchangeContext\n ) => void,\n filter?:\n | RemoveLiquidityImbalanceEventFilter\n | RemoveLiquidityImbalanceEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)\"\n ](null, null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewAdmin(\n handler: (event: CommitNewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewAdminEventFilter | CommitNewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"CommitNewAdmin(uint256,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewAdmin(\n handler: (event: NewAdminEvent, ctx: TokenExchangeContext) => void,\n filter?: NewAdminEventFilter | NewAdminEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewAdmin(address)\"](null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventCommitNewFee(\n handler: (event: CommitNewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: CommitNewFeeEventFilter | CommitNewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"CommitNewFee(uint256,uint256,uint256)\"\n ](null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventNewFee(\n handler: (event: NewFeeEvent, ctx: TokenExchangeContext) => void,\n filter?: NewFeeEventFilter | NewFeeEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"NewFee(uint256,uint256)\"](null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventRampA(\n handler: (event: RampAEvent, ctx: TokenExchangeContext) => void,\n filter?: RampAEventFilter | RampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\n \"RampA(uint256,uint256,uint256,uint256)\"\n ](null, null, null, null);\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n\n onEventStopRampA(\n handler: (event: StopRampAEvent, ctx: TokenExchangeContext) => void,\n filter?: StopRampAEventFilter | StopRampAEventFilter[],\n fetchConfig?: EthFetchConfig\n ) {\n if (!filter) {\n filter = templateContract.filters[\"StopRampA(uint256,uint256)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter!, fetchConfig);\n }\n}\n\nexport function getTokenExchangeContract(\n address: string,\n network: Networkish = 1\n): TokenExchangeContractView {\n let contract = getContractByABI(\n \"TokenExchange\",\n address,\n network\n ) as TokenExchangeContractView;\n if (!contract) {\n const rawContract = TokenExchange__factory.connect(\n address,\n getProvider(network)\n );\n contract = new TokenExchangeContractView(rawContract);\n addContractByABI(\"TokenExchange\", address, network, contract);\n }\n return contract;\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { LogParams } from "ethers/providers";
2
+ import { TokenExchangeEventObject, AddLiquidityEventObject, RemoveLiquidityEventObject, RemoveLiquidityOneEventObject, RemoveLiquidityImbalanceEventObject, CommitNewAdminEventObject, NewAdminEventObject, CommitNewFeeEventObject, NewFeeEventObject, RampAEventObject, StopRampAEventObject } from "./TokenExchange.js";
3
+ export declare function mockTokenExchangeLog(contractAddress: string, event: TokenExchangeEventObject): LogParams;
4
+ export declare function mockAddLiquidityLog(contractAddress: string, event: AddLiquidityEventObject): LogParams;
5
+ export declare function mockRemoveLiquidityLog(contractAddress: string, event: RemoveLiquidityEventObject): LogParams;
6
+ export declare function mockRemoveLiquidityOneLog(contractAddress: string, event: RemoveLiquidityOneEventObject): LogParams;
7
+ export declare function mockRemoveLiquidityImbalanceLog(contractAddress: string, event: RemoveLiquidityImbalanceEventObject): LogParams;
8
+ export declare function mockCommitNewAdminLog(contractAddress: string, event: CommitNewAdminEventObject): LogParams;
9
+ export declare function mockNewAdminLog(contractAddress: string, event: NewAdminEventObject): LogParams;
10
+ export declare function mockCommitNewFeeLog(contractAddress: string, event: CommitNewFeeEventObject): LogParams;
11
+ export declare function mockNewFeeLog(contractAddress: string, event: NewFeeEventObject): LogParams;
12
+ export declare function mockRampALog(contractAddress: string, event: RampAEventObject): LogParams;
13
+ export declare function mockStopRampALog(contractAddress: string, event: StopRampAEventObject): LogParams;
@@ -0,0 +1,149 @@
1
+ import { getTokenExchangeContract } from "./tokenexchange-processor.js";
2
+ const mockField = {
3
+ blockHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
4
+ blockNumber: 0,
5
+ logIndex: 0,
6
+ removed: false,
7
+ transactionHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
8
+ transactionIndex: 0,
9
+ };
10
+ export function mockTokenExchangeLog(contractAddress, event) {
11
+ const contract = getTokenExchangeContract(contractAddress);
12
+ const encodedLog = contract.rawContract.interface.encodeEventLog("TokenExchange(address,int128,uint256,int128,uint256)", [
13
+ event.buyer,
14
+ event.sold_id,
15
+ event.tokens_sold,
16
+ event.bought_id,
17
+ event.tokens_bought,
18
+ ]);
19
+ return {
20
+ ...mockField,
21
+ index: 0,
22
+ address: contractAddress,
23
+ data: encodedLog.data,
24
+ topics: encodedLog.topics,
25
+ };
26
+ }
27
+ export function mockAddLiquidityLog(contractAddress, event) {
28
+ const contract = getTokenExchangeContract(contractAddress);
29
+ const encodedLog = contract.rawContract.interface.encodeEventLog("AddLiquidity(address,uint256[3],uint256[3],uint256,uint256)", [
30
+ event.provider,
31
+ event.token_amounts,
32
+ event.fees,
33
+ event.invariant,
34
+ event.token_supply,
35
+ ]);
36
+ return {
37
+ ...mockField,
38
+ index: 0,
39
+ address: contractAddress,
40
+ data: encodedLog.data,
41
+ topics: encodedLog.topics,
42
+ };
43
+ }
44
+ export function mockRemoveLiquidityLog(contractAddress, event) {
45
+ const contract = getTokenExchangeContract(contractAddress);
46
+ const encodedLog = contract.rawContract.interface.encodeEventLog("RemoveLiquidity(address,uint256[3],uint256[3],uint256)", [event.provider, event.token_amounts, event.fees, event.token_supply]);
47
+ return {
48
+ ...mockField,
49
+ index: 0,
50
+ address: contractAddress,
51
+ data: encodedLog.data,
52
+ topics: encodedLog.topics,
53
+ };
54
+ }
55
+ export function mockRemoveLiquidityOneLog(contractAddress, event) {
56
+ const contract = getTokenExchangeContract(contractAddress);
57
+ const encodedLog = contract.rawContract.interface.encodeEventLog("RemoveLiquidityOne(address,uint256,uint256)", [event.provider, event.token_amount, event.coin_amount]);
58
+ return {
59
+ ...mockField,
60
+ index: 0,
61
+ address: contractAddress,
62
+ data: encodedLog.data,
63
+ topics: encodedLog.topics,
64
+ };
65
+ }
66
+ export function mockRemoveLiquidityImbalanceLog(contractAddress, event) {
67
+ const contract = getTokenExchangeContract(contractAddress);
68
+ const encodedLog = contract.rawContract.interface.encodeEventLog("RemoveLiquidityImbalance(address,uint256[3],uint256[3],uint256,uint256)", [
69
+ event.provider,
70
+ event.token_amounts,
71
+ event.fees,
72
+ event.invariant,
73
+ event.token_supply,
74
+ ]);
75
+ return {
76
+ ...mockField,
77
+ index: 0,
78
+ address: contractAddress,
79
+ data: encodedLog.data,
80
+ topics: encodedLog.topics,
81
+ };
82
+ }
83
+ export function mockCommitNewAdminLog(contractAddress, event) {
84
+ const contract = getTokenExchangeContract(contractAddress);
85
+ const encodedLog = contract.rawContract.interface.encodeEventLog("CommitNewAdmin(uint256,address)", [event.deadline, event.admin]);
86
+ return {
87
+ ...mockField,
88
+ index: 0,
89
+ address: contractAddress,
90
+ data: encodedLog.data,
91
+ topics: encodedLog.topics,
92
+ };
93
+ }
94
+ export function mockNewAdminLog(contractAddress, event) {
95
+ const contract = getTokenExchangeContract(contractAddress);
96
+ const encodedLog = contract.rawContract.interface.encodeEventLog("NewAdmin(address)", [event.admin]);
97
+ return {
98
+ ...mockField,
99
+ index: 0,
100
+ address: contractAddress,
101
+ data: encodedLog.data,
102
+ topics: encodedLog.topics,
103
+ };
104
+ }
105
+ export function mockCommitNewFeeLog(contractAddress, event) {
106
+ const contract = getTokenExchangeContract(contractAddress);
107
+ const encodedLog = contract.rawContract.interface.encodeEventLog("CommitNewFee(uint256,uint256,uint256)", [event.deadline, event.fee, event.admin_fee]);
108
+ return {
109
+ ...mockField,
110
+ index: 0,
111
+ address: contractAddress,
112
+ data: encodedLog.data,
113
+ topics: encodedLog.topics,
114
+ };
115
+ }
116
+ export function mockNewFeeLog(contractAddress, event) {
117
+ const contract = getTokenExchangeContract(contractAddress);
118
+ const encodedLog = contract.rawContract.interface.encodeEventLog("NewFee(uint256,uint256)", [event.fee, event.admin_fee]);
119
+ return {
120
+ ...mockField,
121
+ index: 0,
122
+ address: contractAddress,
123
+ data: encodedLog.data,
124
+ topics: encodedLog.topics,
125
+ };
126
+ }
127
+ export function mockRampALog(contractAddress, event) {
128
+ const contract = getTokenExchangeContract(contractAddress);
129
+ const encodedLog = contract.rawContract.interface.encodeEventLog("RampA(uint256,uint256,uint256,uint256)", [event.old_A, event.new_A, event.initial_time, event.future_time]);
130
+ return {
131
+ ...mockField,
132
+ index: 0,
133
+ address: contractAddress,
134
+ data: encodedLog.data,
135
+ topics: encodedLog.topics,
136
+ };
137
+ }
138
+ export function mockStopRampALog(contractAddress, event) {
139
+ const contract = getTokenExchangeContract(contractAddress);
140
+ const encodedLog = contract.rawContract.interface.encodeEventLog("StopRampA(uint256,uint256)", [event.A, event.t]);
141
+ return {
142
+ ...mockField,
143
+ index: 0,
144
+ address: contractAddress,
145
+ data: encodedLog.data,
146
+ topics: encodedLog.topics,
147
+ };
148
+ }
149
+ //# sourceMappingURL=tokenexchange-test-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenexchange-test-utils.js","sourceRoot":"","sources":["../../../../../src/eth/tests/types/internal/tokenexchange-test-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { LogParams } from \"ethers/providers\";\nimport {\n TokenExchangeEventObject,\n AddLiquidityEventObject,\n RemoveLiquidityEventObject,\n RemoveLiquidityOneEventObject,\n RemoveLiquidityImbalanceEventObject,\n CommitNewAdminEventObject,\n NewAdminEventObject,\n CommitNewFeeEventObject,\n NewFeeEventObject,\n RampAEventObject,\n StopRampAEventObject,\n} from \"./TokenExchange.js\";\nimport { getTokenExchangeContract } from \"./tokenexchange-processor.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 mockTokenExchangeLog(\n contractAddress: string,\n event: TokenExchangeEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"TokenExchange(address,int128,uint256,int128,uint256)\",\n [\n event.buyer,\n event.sold_id,\n event.tokens_sold,\n event.bought_id,\n event.tokens_bought,\n ]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockAddLiquidityLog(\n contractAddress: string,\n event: AddLiquidityEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"AddLiquidity(address,uint256[3],uint256[3],uint256,uint256)\",\n [\n event.provider,\n event.token_amounts,\n event.fees,\n event.invariant,\n event.token_supply,\n ]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRemoveLiquidityLog(\n contractAddress: string,\n event: RemoveLiquidityEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RemoveLiquidity(address,uint256[3],uint256[3],uint256)\",\n [event.provider, event.token_amounts, event.fees, event.token_supply]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRemoveLiquidityOneLog(\n contractAddress: string,\n event: RemoveLiquidityOneEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RemoveLiquidityOne(address,uint256,uint256)\",\n [event.provider, event.token_amount, event.coin_amount]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRemoveLiquidityImbalanceLog(\n contractAddress: string,\n event: RemoveLiquidityImbalanceEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RemoveLiquidityImbalance(address,uint256[3],uint256[3],uint256,uint256)\",\n [\n event.provider,\n event.token_amounts,\n event.fees,\n event.invariant,\n event.token_supply,\n ]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockCommitNewAdminLog(\n contractAddress: string,\n event: CommitNewAdminEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"CommitNewAdmin(uint256,address)\",\n [event.deadline, event.admin]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockNewAdminLog(\n contractAddress: string,\n event: NewAdminEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"NewAdmin(address)\",\n [event.admin]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockCommitNewFeeLog(\n contractAddress: string,\n event: CommitNewFeeEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"CommitNewFee(uint256,uint256,uint256)\",\n [event.deadline, event.fee, event.admin_fee]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockNewFeeLog(\n contractAddress: string,\n event: NewFeeEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"NewFee(uint256,uint256)\",\n [event.fee, event.admin_fee]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockRampALog(\n contractAddress: string,\n event: RampAEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"RampA(uint256,uint256,uint256,uint256)\",\n [event.old_A, event.new_A, event.initial_time, event.future_time]\n );\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockStopRampALog(\n contractAddress: string,\n event: StopRampAEventObject\n): LogParams {\n const contract = getTokenExchangeContract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n \"StopRampA(uint256,uint256)\",\n [event.A, event.t]\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,3 @@
1
+ export * from "./internal/membershipstakerv3-processor.js";
2
+ export * from "./internal/MembershipStakerV3.js";
3
+ export * from "./internal/membershipstakerv3-test-utils.js";
@@ -0,0 +1,7 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * from "./internal/membershipstakerv3-processor.js";
5
+ export * from "./internal/MembershipStakerV3.js";
6
+ export * from "./internal/membershipstakerv3-test-utils.js";
7
+ //# sourceMappingURL=membershipstakerv3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"membershipstakerv3.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/membershipstakerv3.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/membershipstakerv3-processor.js\";\nexport * from \"./internal/MembershipStakerV3.js\";\nexport * from \"./internal/membershipstakerv3-test-utils.js\";\n"]}
@@ -0,0 +1,3 @@
1
+ export * from "./internal/pyth-processor.js";
2
+ export * from "./internal/Pyth.js";
3
+ export * from "./internal/pyth-test-utils.js";
@@ -0,0 +1,7 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * from "./internal/pyth-processor.js";
5
+ export * from "./internal/Pyth.js";
6
+ export * from "./internal/pyth-test-utils.js";
7
+ //# sourceMappingURL=pyth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pyth.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/pyth.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/pyth-processor.js\";\nexport * from \"./internal/Pyth.js\";\nexport * from \"./internal/pyth-test-utils.js\";\n"]}
@@ -0,0 +1,3 @@
1
+ export * from "./internal/seaport-processor.js";
2
+ export * from "./internal/Seaport.js";
3
+ export * from "./internal/seaport-test-utils.js";
@@ -0,0 +1,7 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * from "./internal/seaport-processor.js";
5
+ export * from "./internal/Seaport.js";
6
+ export * from "./internal/seaport-test-utils.js";
7
+ //# sourceMappingURL=seaport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seaport.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/seaport.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/seaport-processor.js\";\nexport * from \"./internal/Seaport.js\";\nexport * from \"./internal/seaport-test-utils.js\";\n"]}
@@ -0,0 +1,3 @@
1
+ export * from "./internal/tokenexchange-processor.js";
2
+ export * from "./internal/TokenExchange.js";
3
+ export * from "./internal/tokenexchange-test-utils.js";
@@ -0,0 +1,7 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * from "./internal/tokenexchange-processor.js";
5
+ export * from "./internal/TokenExchange.js";
6
+ export * from "./internal/tokenexchange-test-utils.js";
7
+ //# sourceMappingURL=tokenexchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenexchange.js","sourceRoot":"","sources":["../../../../src/eth/tests/types/tokenexchange.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AAEpB,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"./internal/tokenexchange-processor.js\";\nexport * from \"./internal/TokenExchange.js\";\nexport * from \"./internal/tokenexchange-test-utils.js\";\n"]}
@@ -32,9 +32,9 @@ declare const InitializeMint: import("superstruct").Struct<{
32
32
  }>;
33
33
  declare const InitializeAccount: import("superstruct").Struct<{
34
34
  account: String;
35
+ owner: String;
35
36
  mint: String;
36
37
  rentSysvar: String;
37
- owner: String;
38
38
  }, {
39
39
  account: import("superstruct").Struct<String, null>;
40
40
  mint: import("superstruct").Struct<String, null>;
@@ -43,9 +43,9 @@ declare const InitializeAccount: import("superstruct").Struct<{
43
43
  }>;
44
44
  declare const InitializeAccount2: import("superstruct").Struct<{
45
45
  account: String;
46
+ owner: String;
46
47
  mint: String;
47
48
  rentSysvar: String;
48
- owner: String;
49
49
  }, {
50
50
  account: import("superstruct").Struct<String, null>;
51
51
  mint: import("superstruct").Struct<String, null>;
@@ -54,8 +54,8 @@ declare const InitializeAccount2: import("superstruct").Struct<{
54
54
  }>;
55
55
  declare const InitializeAccount3: import("superstruct").Struct<{
56
56
  account: String;
57
- mint: String;
58
57
  owner: String;
58
+ mint: String;
59
59
  }, {
60
60
  account: import("superstruct").Struct<String, null>;
61
61
  mint: import("superstruct").Struct<String, null>;
@@ -93,8 +93,8 @@ declare const Approve: import("superstruct").Struct<{
93
93
  amount: string | number;
94
94
  source: String;
95
95
  delegate: String;
96
- signers?: String[] | undefined;
97
96
  owner?: String | undefined;
97
+ signers?: String[] | undefined;
98
98
  multisigOwner?: String | undefined;
99
99
  }, {
100
100
  source: import("superstruct").Struct<String, null>;
@@ -107,8 +107,8 @@ declare const Approve: import("superstruct").Struct<{
107
107
  export type Revoke = Infer<typeof Revoke>;
108
108
  declare const Revoke: import("superstruct").Struct<{
109
109
  source: String;
110
- signers?: String[] | undefined;
111
110
  owner?: String | undefined;
111
+ signers?: String[] | undefined;
112
112
  multisigOwner?: String | undefined;
113
113
  }, {
114
114
  source: import("superstruct").Struct<String, null>;
@@ -172,8 +172,8 @@ declare const Burn: import("superstruct").Struct<{
172
172
  declare const CloseAccount: import("superstruct").Struct<{
173
173
  account: String;
174
174
  destination: String;
175
- signers?: String[] | undefined;
176
175
  owner?: String | undefined;
176
+ signers?: String[] | undefined;
177
177
  multisigOwner?: String | undefined;
178
178
  }, {
179
179
  account: import("superstruct").Struct<String, null>;
@@ -251,8 +251,8 @@ declare const ApproveChecked: import("superstruct").Struct<{
251
251
  decimals: number;
252
252
  uiAmountString: string;
253
253
  };
254
- signers?: String[] | undefined;
255
254
  owner?: String | undefined;
255
+ signers?: String[] | undefined;
256
256
  multisigOwner?: String | undefined;
257
257
  }, {
258
258
  source: import("superstruct").Struct<String, null>;
@@ -405,8 +405,8 @@ declare const Reallocate: import("superstruct").Struct<{
405
405
  export type MemoTransferExtension = Infer<typeof MemoTransferExtension>;
406
406
  declare const MemoTransferExtension: import("superstruct").Struct<{
407
407
  account: String;
408
- signers?: String[] | undefined;
409
408
  owner?: String | undefined;
409
+ signers?: String[] | undefined;
410
410
  multisigOwner?: String | undefined;
411
411
  }, {
412
412
  account: import("superstruct").Struct<String, null>;
@@ -1 +1 @@
1
- {"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../../../src/solana/tests/solana.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType } from '@sentio/sdk'\n\nimport { TestProcessorServer, firstCounterValue } from '@sentio/sdk/testing'\n\ndescribe('Test Solana Example', () => {\n const service = new TestProcessorServer(async () => {\n await import('./wormhole-token-bridge.js')\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(2)\n })\n\n test('Check wormhole token bridge instruction dispatch', async () => {\n const instructions = [\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: 12345n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: 1n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n ]\n\n const res = await service.testInstructions(instructions)\n expect(res.result?.counters).length(4)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber).equal(12345n)\n expect(firstCounterValue(res.result, 'total_transfer_amount')).equal(1000000n)\n expect(firstCounterValue(res.result, 'worm')).equal(1000000n)\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.SOL_INSTRUCTION)\n })\n\n test('Check SPLToken parsed instruction dispatch', async () => {\n const parsedIns = {\n info: {\n account: '2SDN4vEJdCdW3pGyhx2km9gB3LeHzMGLrG2j4uVNZfrx',\n amount: '12000000000000',\n mint: '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs',\n mintAuthority: 'BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7',\n },\n type: 'mintTo',\n }\n const instructions = [\n {\n instructionData: '',\n slot: 0n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n parsed: parsedIns,\n accounts: [],\n },\n ]\n const res = await service.testInstructions(instructions)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber).equal(0n)\n expect(firstCounterValue(res.result, 'totalWeth_supply')?.toString()).equal('12000000000000')\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.SOL_INSTRUCTION)\n })\n})\n"]}
1
+ {"version":3,"file":"solana.test.js","sourceRoot":"","sources":["../../../src/solana/tests/solana.test.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO move out of this package\n\nimport { expect } from 'chai'\n\nimport { HandlerType } from '@sentio/sdk'\n\nimport { TestProcessorServer, firstCounterValue } from '@sentio/sdk/testing'\n\ndescribe('Test Solana Example', () => {\n const service = new TestProcessorServer(async () => {\n await import('./wormhole-token-bridge.js')\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(2)\n })\n\n test('Check wormhole token bridge instruction dispatch', async () => {\n const instructions = [\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: 12345n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n {\n instructionData: '33G5T8yXAQWdH8FX7fTy1mBJ6e4dUKfQWbViSrT7qJjpS8UAA3ftEQx9sNzrkaJm56xtENhDsWf',\n slot: 1n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n accounts: ['worm'],\n },\n ]\n\n const res = await service.solana.testInstructions(instructions)\n expect(res.result?.counters).length(4)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber).equal(12345n)\n expect(firstCounterValue(res.result, 'total_transfer_amount')).equal(1000000n)\n expect(firstCounterValue(res.result, 'worm')).equal(1000000n)\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.SOL_INSTRUCTION)\n })\n\n test('Check SPLToken parsed instruction dispatch', async () => {\n const parsedIns = {\n info: {\n account: '2SDN4vEJdCdW3pGyhx2km9gB3LeHzMGLrG2j4uVNZfrx',\n amount: '12000000000000',\n mint: '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs',\n mintAuthority: 'BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7',\n },\n type: 'mintTo',\n }\n const instructions = [\n {\n instructionData: '',\n slot: 0n,\n programAccountId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n parsed: parsedIns,\n accounts: [],\n },\n ]\n const res = await service.solana.testInstructions(instructions)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n expect(res.result?.counters[0].metadata?.blockNumber).equal(0n)\n expect(firstCounterValue(res.result, 'totalWeth_supply')?.toString()).equal('12000000000000')\n expect(res.result?.counters[0].runtimeInfo?.from).equals(HandlerType.SOL_INSTRUCTION)\n })\n})\n"]}
@@ -3,7 +3,7 @@ import { ListStateStorage } from '@sentio/runtime';
3
3
  import { SuiNetwork, getChainId } from './network.js';
4
4
  import { ServerError, Status } from 'nice-grpc';
5
5
  import { SuiContext } from './context.js';
6
- import { getMoveCallTransaction } from '@mysten/sui.js';
6
+ import { getMoveCalls } from './utils.js';
7
7
  class IndexConfigure {
8
8
  address;
9
9
  network;
@@ -88,13 +88,7 @@ export class SuiBaseProcessor {
88
88
  const tx = data.transaction;
89
89
  const ctx = new SuiContext(processor.moduleName, processor.config.network, processor.config.address, data.timestamp || new Date(0), data.slot, tx);
90
90
  if (tx) {
91
- const calls = tx.certificate.data.transactions.flatMap((tx) => {
92
- const call = getMoveCallTransaction(tx);
93
- if (call) {
94
- return [call];
95
- }
96
- return [];
97
- });
91
+ const calls = getMoveCalls(tx);
98
92
  if (calls.length !== 1) {
99
93
  throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length);
100
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = eventInstance // TODO\n // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = tx.certificate.data.transactions.flatMap((tx) => {\n const call = getMoveCallTransaction(tx)\n if (call) {\n return [call]\n }\n return []\n })\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = payload // MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}
1
+ {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = eventInstance // TODO\n // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = getMoveCalls(tx)\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = payload // MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}