@sentio/sdk 0.6.5 → 1.0.0-rc.2

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 (609) hide show
  1. package/LICENSE +55 -0
  2. package/lib/aptos/api.d.ts +2 -0
  3. package/lib/aptos/api.js +14 -0
  4. package/lib/aptos/api.js.map +1 -0
  5. package/lib/aptos/aptos-plugin.d.ts +14 -0
  6. package/lib/aptos/aptos-plugin.js +190 -0
  7. package/lib/aptos/aptos-plugin.js.map +1 -0
  8. package/lib/aptos/aptos-processor.d.ts +75 -0
  9. package/lib/aptos/aptos-processor.js +193 -0
  10. package/lib/aptos/aptos-processor.js.map +1 -0
  11. package/lib/aptos/context.d.ts +22 -0
  12. package/lib/aptos/context.js +69 -0
  13. package/lib/aptos/context.js.map +1 -0
  14. package/lib/aptos/index.d.ts +9 -0
  15. package/lib/aptos/index.js +34 -0
  16. package/lib/aptos/index.js.map +1 -0
  17. package/lib/aptos/models.d.ts +23 -0
  18. package/lib/aptos/models.js +3 -0
  19. package/lib/aptos/models.js.map +1 -0
  20. package/lib/aptos/network.d.ts +14 -0
  21. package/lib/aptos/network.js +46 -0
  22. package/lib/aptos/network.js.map +1 -0
  23. package/lib/aptos/runtime.d.ts +2 -0
  24. package/lib/aptos/runtime.js +16 -0
  25. package/lib/aptos/runtime.js.map +1 -0
  26. package/lib/aptos/type-registry.d.ts +21 -0
  27. package/lib/aptos/type-registry.js +156 -0
  28. package/lib/aptos/type-registry.js.map +1 -0
  29. package/lib/aptos/types.d.ts +9 -0
  30. package/lib/aptos/types.js +135 -0
  31. package/lib/aptos/types.js.map +1 -0
  32. package/{dist/numberish.test.d.ts → lib/aptos/types.test.d.ts} +0 -0
  33. package/lib/aptos/types.test.js.map +1 -0
  34. package/lib/aptos/utils.d.ts +7 -0
  35. package/lib/aptos/utils.js +27 -0
  36. package/lib/aptos/utils.js.map +1 -0
  37. package/lib/aptos-codegen/codegen.d.ts +23 -0
  38. package/lib/aptos-codegen/codegen.js +364 -0
  39. package/lib/aptos-codegen/codegen.js.map +1 -0
  40. package/lib/aptos-codegen/typegen.d.ts +17 -0
  41. package/lib/aptos-codegen/typegen.js +142 -0
  42. package/lib/aptos-codegen/typegen.js.map +1 -0
  43. package/lib/binds.d.ts +12 -0
  44. package/lib/binds.js +38 -0
  45. package/lib/binds.js.map +1 -0
  46. package/lib/builtin/aptos/0x1.d.ts +1913 -0
  47. package/lib/builtin/aptos/0x1.js +2748 -0
  48. package/lib/builtin/aptos/0x1.js.map +1 -0
  49. package/lib/builtin/aptos/0x3.d.ts +482 -0
  50. package/lib/builtin/aptos/0x3.js +526 -0
  51. package/lib/builtin/aptos/0x3.js.map +1 -0
  52. package/lib/builtin/aptos/index.d.ts +2 -0
  53. package/{dist/builtin/internal → lib/builtin/aptos}/index.js +3 -4
  54. package/lib/builtin/aptos/index.js.map +1 -0
  55. package/lib/builtin/eacaggregatorproxy/index.d.ts +2 -0
  56. package/lib/builtin/eacaggregatorproxy/index.js +22 -0
  57. package/lib/builtin/eacaggregatorproxy/index.js.map +1 -0
  58. package/lib/builtin/eacaggregatorproxy/test-utils.d.ts +6 -0
  59. package/lib/builtin/eacaggregatorproxy/test-utils.js +57 -0
  60. package/lib/builtin/eacaggregatorproxy/test-utils.js.map +1 -0
  61. package/lib/builtin/erc1155/index.d.ts +2 -0
  62. package/lib/builtin/erc1155/index.js +22 -0
  63. package/lib/builtin/erc1155/index.js.map +1 -0
  64. package/lib/builtin/erc1155/test-utils.d.ts +6 -0
  65. package/lib/builtin/erc1155/test-utils.js +57 -0
  66. package/lib/builtin/erc1155/test-utils.js.map +1 -0
  67. package/{dist → lib}/builtin/erc20/index.d.ts +1 -1
  68. package/{dist → lib}/builtin/erc20/index.js +1 -1
  69. package/lib/builtin/erc20/index.js.map +1 -0
  70. package/lib/builtin/erc20/test-utils.d.ts +5 -0
  71. package/lib/builtin/erc20/test-utils.js +46 -0
  72. package/lib/builtin/erc20/test-utils.js.map +1 -0
  73. package/lib/builtin/erc20bytes/index.d.ts +2 -0
  74. package/lib/builtin/erc20bytes/index.js +22 -0
  75. package/lib/builtin/erc20bytes/index.js.map +1 -0
  76. package/lib/builtin/erc20bytes/test-utils.d.ts +4 -0
  77. package/lib/builtin/erc20bytes/test-utils.js +35 -0
  78. package/lib/builtin/erc20bytes/test-utils.js.map +1 -0
  79. package/lib/builtin/erc721/index.d.ts +2 -0
  80. package/lib/builtin/erc721/index.js +22 -0
  81. package/lib/builtin/erc721/index.js.map +1 -0
  82. package/lib/builtin/erc721/test-utils.d.ts +5 -0
  83. package/lib/builtin/erc721/test-utils.js +46 -0
  84. package/lib/builtin/erc721/test-utils.js.map +1 -0
  85. package/lib/builtin/index.d.ts +6 -0
  86. package/lib/builtin/index.js +33 -0
  87. package/lib/builtin/index.js.map +1 -0
  88. package/lib/builtin/internal/EACAggregatorProxy.d.ts +460 -0
  89. package/lib/builtin/internal/EACAggregatorProxy.js +3 -0
  90. package/lib/builtin/internal/EACAggregatorProxy.js.map +1 -0
  91. package/lib/builtin/internal/ERC1155.d.ts +199 -0
  92. package/lib/builtin/internal/ERC1155.js +3 -0
  93. package/lib/builtin/internal/ERC1155.js.map +1 -0
  94. package/lib/builtin/internal/ERC20.d.ts +307 -0
  95. package/{dist/builtin/internal/Erc20.js → lib/builtin/internal/ERC20.js} +1 -1
  96. package/lib/builtin/internal/ERC20.js.map +1 -0
  97. package/{dist/builtin/internal/Erc20.d.ts → lib/builtin/internal/ERC20Bytes.d.ts} +62 -46
  98. package/lib/builtin/internal/ERC20Bytes.js +3 -0
  99. package/lib/builtin/internal/ERC20Bytes.js.map +1 -0
  100. package/lib/builtin/internal/ERC721.d.ts +252 -0
  101. package/lib/builtin/internal/ERC721.js +3 -0
  102. package/lib/builtin/internal/ERC721.js.map +1 -0
  103. package/lib/builtin/internal/WETH9.d.ts +221 -0
  104. package/lib/builtin/internal/WETH9.js +3 -0
  105. package/lib/builtin/internal/WETH9.js.map +1 -0
  106. package/{dist → lib}/builtin/internal/common.d.ts +0 -0
  107. package/{dist → lib}/builtin/internal/common.js +0 -0
  108. package/lib/builtin/internal/common.js.map +1 -0
  109. package/lib/builtin/internal/eacaggregatorproxy_processor.d.ts +294 -0
  110. package/lib/builtin/internal/eacaggregatorproxy_processor.js +761 -0
  111. package/lib/builtin/internal/eacaggregatorproxy_processor.js.map +1 -0
  112. package/lib/builtin/internal/erc1155_processor.d.ts +126 -0
  113. package/lib/builtin/internal/erc1155_processor.js +313 -0
  114. package/lib/builtin/internal/erc1155_processor.js.map +1 -0
  115. package/lib/builtin/internal/erc20_processor.d.ts +166 -0
  116. package/lib/builtin/internal/erc20_processor.js +418 -0
  117. package/lib/builtin/internal/erc20_processor.js.map +1 -0
  118. package/lib/builtin/internal/erc20bytes_processor.d.ts +101 -0
  119. package/lib/builtin/internal/erc20bytes_processor.js +311 -0
  120. package/lib/builtin/internal/erc20bytes_processor.js.map +1 -0
  121. package/lib/builtin/internal/erc721_processor.d.ts +155 -0
  122. package/lib/builtin/internal/erc721_processor.js +437 -0
  123. package/lib/builtin/internal/erc721_processor.js.map +1 -0
  124. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.d.ts +46 -0
  125. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js +528 -0
  126. package/lib/builtin/internal/factories/EACAggregatorProxy__factory.js.map +1 -0
  127. package/{dist/builtin/internal/factories/Erc20__factory.d.ts → lib/builtin/internal/factories/ERC1155__factory.d.ts} +4 -4
  128. package/lib/builtin/internal/factories/ERC1155__factory.js +333 -0
  129. package/lib/builtin/internal/factories/ERC1155__factory.js.map +1 -0
  130. package/lib/builtin/internal/factories/ERC20Bytes__factory.d.ts +48 -0
  131. package/{dist/builtin/internal/factories/Erc20__factory.js → lib/builtin/internal/factories/ERC20Bytes__factory.js} +128 -89
  132. package/lib/builtin/internal/factories/ERC20Bytes__factory.js.map +1 -0
  133. package/lib/builtin/internal/factories/ERC20__factory.d.ts +42 -0
  134. package/lib/builtin/internal/factories/ERC20__factory.js +405 -0
  135. package/lib/builtin/internal/factories/ERC20__factory.js.map +1 -0
  136. package/lib/builtin/internal/factories/ERC721__factory.d.ts +51 -0
  137. package/lib/builtin/internal/factories/ERC721__factory.js +365 -0
  138. package/lib/builtin/internal/factories/ERC721__factory.js.map +1 -0
  139. package/lib/builtin/internal/factories/WETH9__factory.d.ts +45 -0
  140. package/lib/builtin/internal/factories/WETH9__factory.js +298 -0
  141. package/lib/builtin/internal/factories/WETH9__factory.js.map +1 -0
  142. package/lib/builtin/internal/factories/index.d.ts +6 -0
  143. package/lib/builtin/internal/factories/index.js +19 -0
  144. package/lib/builtin/internal/factories/index.js.map +1 -0
  145. package/lib/builtin/internal/index.d.ts +13 -0
  146. package/lib/builtin/internal/index.js +40 -0
  147. package/lib/builtin/internal/index.js.map +1 -0
  148. package/lib/builtin/internal/weth9_processor.d.ts +115 -0
  149. package/lib/builtin/internal/weth9_processor.js +353 -0
  150. package/lib/builtin/internal/weth9_processor.js.map +1 -0
  151. package/lib/builtin/solana/index.d.ts +2 -0
  152. package/lib/builtin/solana/index.js +19 -0
  153. package/lib/builtin/solana/index.js.map +1 -0
  154. package/lib/builtin/solana/spl-token-processor.d.ts +39 -0
  155. package/lib/builtin/solana/spl-token-processor.js +258 -0
  156. package/lib/builtin/solana/spl-token-processor.js.map +1 -0
  157. package/lib/builtin/solana/types.d.ts +427 -0
  158. package/lib/builtin/solana/types.js +203 -0
  159. package/lib/builtin/solana/types.js.map +1 -0
  160. package/lib/builtin/solana/wormhole-processor.d.ts +16 -0
  161. package/{dist/test-case/types/wormhole_processor.js → lib/builtin/solana/wormhole-processor.js} +57 -54
  162. package/lib/builtin/solana/wormhole-processor.js.map +1 -0
  163. package/lib/builtin/weth9/index.d.ts +2 -0
  164. package/lib/builtin/weth9/index.js +22 -0
  165. package/lib/builtin/weth9/index.js.map +1 -0
  166. package/lib/builtin/weth9/test-utils.d.ts +6 -0
  167. package/lib/builtin/weth9/test-utils.js +57 -0
  168. package/lib/builtin/weth9/test-utils.js.map +1 -0
  169. package/lib/chain-config.d.ts +6 -0
  170. package/lib/chain-config.js +3 -0
  171. package/lib/chain-config.js.map +1 -0
  172. package/lib/core/account-processor.d.ts +58 -0
  173. package/lib/core/account-processor.js +147 -0
  174. package/lib/core/account-processor.js.map +1 -0
  175. package/lib/core/base-context.d.ts +12 -0
  176. package/lib/core/base-context.js +25 -0
  177. package/lib/core/base-context.js.map +1 -0
  178. package/lib/core/base-processor-template.d.ts +42 -0
  179. package/{dist → lib/core}/base-processor-template.js +32 -6
  180. package/lib/core/base-processor-template.js.map +1 -0
  181. package/lib/core/base-processor.d.ts +39 -0
  182. package/lib/core/base-processor.js +153 -0
  183. package/lib/core/base-processor.js.map +1 -0
  184. package/lib/core/big-decimal.d.ts +1 -0
  185. package/lib/core/big-decimal.js +6 -0
  186. package/lib/core/big-decimal.js.map +1 -0
  187. package/{dist → lib/core}/bind-options.d.ts +5 -0
  188. package/{dist → lib/core}/bind-options.js +10 -1
  189. package/lib/core/bind-options.js.map +1 -0
  190. package/lib/core/context.d.ts +55 -0
  191. package/lib/core/context.js +162 -0
  192. package/lib/core/context.js.map +1 -0
  193. package/lib/core/eth-plugin.d.ts +14 -0
  194. package/lib/core/eth-plugin.js +221 -0
  195. package/lib/core/eth-plugin.js.map +1 -0
  196. package/lib/core/event-tracker.d.ts +26 -0
  197. package/lib/core/event-tracker.js +54 -0
  198. package/lib/core/event-tracker.js.map +1 -0
  199. package/lib/core/exporter.d.ts +13 -0
  200. package/lib/core/exporter.js +30 -0
  201. package/lib/core/exporter.js.map +1 -0
  202. package/lib/core/generic-processor.d.ts +10 -0
  203. package/lib/core/generic-processor.js +32 -0
  204. package/lib/core/generic-processor.js.map +1 -0
  205. package/{dist/test-case/erc20-template.test.d.ts → lib/core/generic-processor.test.d.ts} +0 -0
  206. package/lib/core/generic-processor.test.js.map +1 -0
  207. package/lib/core/index.d.ts +17 -0
  208. package/lib/core/index.js +46 -0
  209. package/lib/core/index.js.map +1 -0
  210. package/lib/core/logger.d.ts +14 -0
  211. package/lib/core/logger.js +42 -0
  212. package/lib/core/logger.js.map +1 -0
  213. package/lib/core/metadata.d.ts +7 -0
  214. package/lib/core/metadata.js +12 -0
  215. package/lib/core/metadata.js.map +1 -0
  216. package/lib/core/meter.d.ts +59 -0
  217. package/lib/core/meter.js +166 -0
  218. package/lib/core/meter.js.map +1 -0
  219. package/{dist/test-case/erc20.test.d.ts → lib/core/meter.test.d.ts} +0 -0
  220. package/lib/core/meter.test.js.map +1 -0
  221. package/lib/core/numberish.d.ts +8 -0
  222. package/lib/core/numberish.js +115 -0
  223. package/lib/core/numberish.js.map +1 -0
  224. package/{dist/test-case/mirrorworld.d.ts → lib/core/numberish.test.d.ts} +0 -0
  225. package/lib/core/numberish.test.js.map +1 -0
  226. package/lib/core/solana-context.d.ts +12 -0
  227. package/lib/core/solana-context.js +34 -0
  228. package/lib/core/solana-context.js.map +1 -0
  229. package/lib/core/solana-options.d.ts +9 -0
  230. package/lib/core/solana-options.js +13 -0
  231. package/lib/core/solana-options.js.map +1 -0
  232. package/lib/core/solana-plugin.d.ts +9 -0
  233. package/lib/core/solana-plugin.js +79 -0
  234. package/lib/core/solana-plugin.js.map +1 -0
  235. package/lib/core/solana-processor.d.ts +41 -0
  236. package/lib/core/solana-processor.js +90 -0
  237. package/lib/core/solana-processor.js.map +1 -0
  238. package/lib/core/sui-plugin.d.ts +8 -0
  239. package/lib/core/sui-plugin.js +46 -0
  240. package/lib/core/sui-plugin.js.map +1 -0
  241. package/lib/core/sui-processor.d.ts +26 -0
  242. package/lib/core/sui-processor.js +59 -0
  243. package/lib/core/sui-processor.js.map +1 -0
  244. package/lib/core/trace.d.ts +35 -0
  245. package/lib/core/trace.js +43 -0
  246. package/lib/core/trace.js.map +1 -0
  247. package/lib/endpoints.d.ts +6 -0
  248. package/lib/endpoints.js +11 -0
  249. package/lib/endpoints.js.map +1 -0
  250. package/lib/error.d.ts +7 -0
  251. package/lib/error.js +43 -0
  252. package/lib/error.js.map +1 -0
  253. package/{dist → lib}/gen/builtin.d.ts +0 -0
  254. package/{dist → lib}/gen/builtin.js +0 -0
  255. package/lib/gen/builtin.js.map +1 -0
  256. package/lib/gen/chainquery/protos/chainquery.d.ts +400 -0
  257. package/lib/gen/chainquery/protos/chainquery.js +972 -0
  258. package/lib/gen/chainquery/protos/chainquery.js.map +1 -0
  259. package/{dist → lib}/gen/google/protobuf/empty.d.ts +0 -0
  260. package/{dist → lib}/gen/google/protobuf/empty.js +0 -0
  261. package/lib/gen/google/protobuf/empty.js.map +1 -0
  262. package/lib/gen/google/protobuf/struct.d.ts +73 -0
  263. package/lib/gen/google/protobuf/struct.js +371 -0
  264. package/lib/gen/google/protobuf/struct.js.map +1 -0
  265. package/lib/gen/google/protobuf/timestamp.d.ts +18 -0
  266. package/lib/gen/google/protobuf/timestamp.js +71 -0
  267. package/lib/gen/google/protobuf/timestamp.js.map +1 -0
  268. package/lib/gen/index.d.ts +2 -0
  269. package/lib/gen/index.js +19 -0
  270. package/lib/gen/index.js.map +1 -0
  271. package/lib/gen/processor/protos/processor.d.ts +826 -0
  272. package/lib/gen/processor/protos/processor.js +3988 -0
  273. package/lib/gen/processor/protos/processor.js.map +1 -0
  274. package/lib/gen/service/price/protos/price.d.ts +85 -0
  275. package/lib/gen/service/price/protos/price.js +269 -0
  276. package/lib/gen/service/price/protos/price.js.map +1 -0
  277. package/lib/index.d.ts +7 -0
  278. package/lib/index.js +48 -0
  279. package/lib/index.js.map +1 -0
  280. package/lib/loader.d.ts +5 -0
  281. package/lib/loader.js +30 -0
  282. package/lib/loader.js.map +1 -0
  283. package/lib/plugin.d.ts +15 -0
  284. package/lib/plugin.js +32 -0
  285. package/lib/plugin.js.map +1 -0
  286. package/{dist → lib}/processor-runner.d.ts +0 -0
  287. package/lib/processor-runner.js +102 -0
  288. package/lib/processor-runner.js.map +1 -0
  289. package/lib/promise-or-void.d.ts +1 -0
  290. package/lib/promise-or-void.js +3 -0
  291. package/lib/promise-or-void.js.map +1 -0
  292. package/{dist → lib}/provider.d.ts +2 -1
  293. package/{dist → lib}/provider.js +19 -9
  294. package/lib/provider.js.map +1 -0
  295. package/lib/service.d.ts +26 -0
  296. package/lib/service.js +225 -0
  297. package/lib/service.js.map +1 -0
  298. package/lib/solana-codegen/codegen.d.ts +1 -0
  299. package/lib/solana-codegen/codegen.js +113 -0
  300. package/lib/solana-codegen/codegen.js.map +1 -0
  301. package/lib/state/processor-state.d.ts +3 -0
  302. package/lib/state/processor-state.js +8 -0
  303. package/lib/state/processor-state.js.map +1 -0
  304. package/lib/state/state-storage.d.ts +17 -0
  305. package/lib/state/state-storage.js +60 -0
  306. package/lib/state/state-storage.js.map +1 -0
  307. package/{dist/test-case/solana.test.d.ts → lib/state/state-storage.test.d.ts} +0 -0
  308. package/lib/state/state-storage.test.js.map +1 -0
  309. package/lib/target-ethers-sentio/event-handler.d.ts +3 -0
  310. package/lib/target-ethers-sentio/event-handler.js +35 -0
  311. package/lib/target-ethers-sentio/event-handler.js.map +1 -0
  312. package/{dist/target-ethers-sentio/codegen.d.ts → lib/target-ethers-sentio/file.d.ts} +1 -0
  313. package/lib/target-ethers-sentio/file.js +226 -0
  314. package/lib/target-ethers-sentio/file.js.map +1 -0
  315. package/lib/target-ethers-sentio/functions-handler.d.ts +3 -0
  316. package/lib/target-ethers-sentio/functions-handler.js +50 -0
  317. package/lib/target-ethers-sentio/functions-handler.js.map +1 -0
  318. package/{dist → lib}/target-ethers-sentio/index.d.ts +1 -0
  319. package/{dist → lib}/target-ethers-sentio/index.js +16 -3
  320. package/{dist → lib}/target-ethers-sentio/index.js.map +1 -1
  321. package/lib/target-ethers-sentio/types.d.ts +4 -0
  322. package/lib/target-ethers-sentio/types.js +46 -0
  323. package/lib/target-ethers-sentio/types.js.map +1 -0
  324. package/lib/target-ethers-sentio/view-function.d.ts +5 -0
  325. package/lib/target-ethers-sentio/view-function.js +74 -0
  326. package/lib/target-ethers-sentio/view-function.js.map +1 -0
  327. package/{dist/cli/cli.d.ts → lib/test-abi-code-gen.d.ts} +0 -0
  328. package/lib/test-abi-code-gen.js +20 -0
  329. package/lib/test-abi-code-gen.js.map +1 -0
  330. package/lib/testing/index.d.ts +2 -0
  331. package/lib/testing/index.js +11 -0
  332. package/lib/testing/index.js.map +1 -0
  333. package/lib/testing/metric-utils.d.ts +5 -0
  334. package/lib/testing/metric-utils.js +50 -0
  335. package/lib/testing/metric-utils.js.map +1 -0
  336. package/lib/testing/test-processor-server.d.ts +42 -0
  337. package/lib/testing/test-processor-server.js +293 -0
  338. package/lib/testing/test-processor-server.js.map +1 -0
  339. package/lib/testing/test-provider.d.ts +1 -0
  340. package/lib/testing/test-provider.js +33 -0
  341. package/lib/testing/test-provider.js.map +1 -0
  342. package/lib/utils/chain.d.ts +89 -0
  343. package/lib/utils/chain.js +128 -0
  344. package/lib/utils/chain.js.map +1 -0
  345. package/lib/utils/chainlink-oracles-goerli.csv +8 -0
  346. package/lib/utils/chainlink-oracles.csv +217 -0
  347. package/lib/utils/conversion.d.ts +6 -0
  348. package/lib/utils/conversion.js +27 -0
  349. package/lib/utils/conversion.js.map +1 -0
  350. package/lib/utils/dex-price.d.ts +22 -0
  351. package/lib/utils/dex-price.js +114 -0
  352. package/lib/utils/dex-price.js.map +1 -0
  353. package/{dist/test-case/wormhole-token-bridge.d.ts → lib/utils/dex-price.test.d.ts} +0 -0
  354. package/lib/utils/dex-price.test.js.map +1 -0
  355. package/lib/utils/erc20.test.d.ts +1 -0
  356. package/lib/utils/erc20.test.js.map +1 -0
  357. package/lib/utils/index.d.ts +4 -0
  358. package/lib/utils/index.js +31 -0
  359. package/lib/utils/index.js.map +1 -0
  360. package/lib/utils/price.d.ts +52 -0
  361. package/lib/utils/price.js +86 -0
  362. package/lib/utils/price.js.map +1 -0
  363. package/lib/utils/token.d.ts +15 -0
  364. package/lib/utils/token.js +60 -0
  365. package/lib/utils/token.js.map +1 -0
  366. package/package.json +43 -41
  367. package/src/abis/EACAggregatorProxy.json +227 -0
  368. package/src/abis/ERC1155.json +314 -0
  369. package/src/abis/ERC20.json +174 -0
  370. package/src/abis/ERC20Bytes.json +236 -0
  371. package/src/abis/ERC721.json +346 -0
  372. package/src/abis/WETH9.json +153 -0
  373. package/src/abis/aptos/0x1.json +9205 -0
  374. package/src/abis/aptos/0x3.json +1515 -0
  375. package/src/aptos/api.ts +11 -0
  376. package/src/aptos/aptos-plugin.ts +217 -0
  377. package/src/aptos/aptos-processor.ts +305 -0
  378. package/src/aptos/context.ts +75 -0
  379. package/src/aptos/index.ts +10 -0
  380. package/src/aptos/models.ts +34 -0
  381. package/src/aptos/network.ts +42 -0
  382. package/src/aptos/runtime.ts +13 -0
  383. package/src/aptos/type-registry.ts +187 -0
  384. package/src/aptos/types.ts +149 -0
  385. package/src/aptos/utils.ts +26 -0
  386. package/src/aptos-codegen/codegen.ts +428 -0
  387. package/src/aptos-codegen/tsconfig.json +9 -0
  388. package/src/aptos-codegen/typegen.ts +153 -0
  389. package/src/binds.ts +45 -0
  390. package/src/builtin/aptos/0x1.ts +4210 -0
  391. package/src/builtin/aptos/0x3.ts +888 -0
  392. package/src/builtin/aptos/index.ts +2 -0
  393. package/src/builtin/eacaggregatorproxy/index.ts +6 -0
  394. package/src/builtin/eacaggregatorproxy/test-utils.ts +89 -0
  395. package/src/builtin/erc1155/index.ts +6 -0
  396. package/src/builtin/erc1155/test-utils.ts +89 -0
  397. package/src/builtin/erc20/index.ts +6 -0
  398. package/src/builtin/erc20/test-utils.ts +71 -0
  399. package/src/builtin/erc20bytes/index.ts +6 -0
  400. package/src/builtin/erc20bytes/test-utils.ts +53 -0
  401. package/src/builtin/erc721/index.ts +6 -0
  402. package/src/builtin/erc721/test-utils.ts +71 -0
  403. package/src/builtin/index.ts +7 -0
  404. package/src/builtin/internal/EACAggregatorProxy.ts +861 -0
  405. package/src/builtin/internal/ERC1155.ts +529 -0
  406. package/src/builtin/internal/ERC20.ts +679 -0
  407. package/src/builtin/internal/ERC20Bytes.ts +384 -0
  408. package/src/builtin/internal/ERC721.ts +639 -0
  409. package/src/builtin/internal/WETH9.ts +480 -0
  410. package/src/builtin/internal/common.ts +46 -0
  411. package/src/builtin/internal/eacaggregatorproxy_processor.ts +1219 -0
  412. package/src/builtin/internal/erc1155_processor.ts +534 -0
  413. package/src/builtin/internal/erc20_processor.ts +663 -0
  414. package/src/builtin/internal/erc20bytes_processor.ts +474 -0
  415. package/src/builtin/internal/erc721_processor.ts +686 -0
  416. package/src/builtin/internal/factories/EACAggregatorProxy__factory.ts +534 -0
  417. package/src/builtin/internal/factories/ERC1155__factory.ts +336 -0
  418. package/src/builtin/internal/factories/ERC20Bytes__factory.ts +258 -0
  419. package/src/builtin/internal/factories/ERC20__factory.ts +405 -0
  420. package/src/builtin/internal/factories/ERC721__factory.ts +365 -0
  421. package/src/builtin/internal/factories/WETH9__factory.ts +298 -0
  422. package/src/builtin/internal/factories/index.ts +9 -0
  423. package/src/builtin/internal/index.ts +16 -0
  424. package/src/builtin/internal/weth9_processor.ts +536 -0
  425. package/src/builtin/solana/index.ts +2 -0
  426. package/src/builtin/solana/spl-token-processor.ts +298 -0
  427. package/src/builtin/solana/types.ts +279 -0
  428. package/src/builtin/solana/wormhole-processor.ts +178 -0
  429. package/src/builtin/weth9/index.ts +6 -0
  430. package/src/builtin/weth9/test-utils.ts +89 -0
  431. package/src/chain-config.ts +6 -0
  432. package/src/core/account-processor.ts +217 -0
  433. package/src/core/base-context.ts +28 -0
  434. package/src/core/base-processor-template.ts +150 -0
  435. package/src/core/base-processor.ts +217 -0
  436. package/src/core/big-decimal.ts +1 -0
  437. package/src/core/bind-options.ts +45 -0
  438. package/src/core/context.ts +183 -0
  439. package/src/core/eth-plugin.ts +255 -0
  440. package/src/core/event-tracker.ts +69 -0
  441. package/src/core/exporter.ts +32 -0
  442. package/src/core/generic-processor.ts +34 -0
  443. package/src/core/index.ts +22 -0
  444. package/src/core/logger.ts +49 -0
  445. package/src/core/metadata.ts +11 -0
  446. package/src/core/meter.ts +179 -0
  447. package/src/core/numberish.ts +121 -0
  448. package/src/core/solana-context.ts +35 -0
  449. package/src/core/solana-options.ts +10 -0
  450. package/src/core/solana-plugin.ts +97 -0
  451. package/src/core/solana-processor.ts +109 -0
  452. package/src/core/sui-plugin.ts +54 -0
  453. package/src/core/sui-processor.ts +65 -0
  454. package/src/core/trace.ts +86 -0
  455. package/src/endpoints.ts +9 -0
  456. package/src/error.ts +45 -0
  457. package/src/gen/builtin.ts +22 -0
  458. package/src/gen/chainquery/protos/chainquery.ts +1212 -0
  459. package/src/gen/google/protobuf/empty.ts +58 -0
  460. package/src/gen/google/protobuf/struct.ts +422 -0
  461. package/src/gen/google/protobuf/timestamp.ts +85 -0
  462. package/src/gen/index.ts +3 -0
  463. package/src/gen/processor/protos/processor.ts +4619 -0
  464. package/src/gen/service/price/protos/price.ts +329 -0
  465. package/src/index.ts +13 -0
  466. package/src/loader.ts +24 -0
  467. package/src/plugin.ts +41 -0
  468. package/src/processor-runner.ts +93 -0
  469. package/src/promise-or-void.ts +1 -0
  470. package/src/provider.ts +74 -0
  471. package/src/service.ts +255 -0
  472. package/src/solana-codegen/codegen.ts +116 -0
  473. package/src/state/processor-state.ts +3 -0
  474. package/src/state/state-storage.ts +65 -0
  475. package/src/target-ethers-sentio/event-handler.ts +31 -0
  476. package/src/target-ethers-sentio/file.ts +242 -0
  477. package/src/target-ethers-sentio/functions-handler.ts +57 -0
  478. package/src/target-ethers-sentio/index.ts +60 -0
  479. package/src/target-ethers-sentio/tsconfig.json +9 -0
  480. package/src/target-ethers-sentio/types.ts +42 -0
  481. package/src/target-ethers-sentio/view-function.ts +79 -0
  482. package/src/test-abi-code-gen.ts +16 -0
  483. package/src/testing/index.ts +4 -0
  484. package/src/testing/metric-utils.ts +48 -0
  485. package/src/testing/test-processor-server.ts +334 -0
  486. package/src/testing/test-provider.ts +33 -0
  487. package/src/types/global.d.ts +15 -0
  488. package/src/utils/chain.ts +127 -0
  489. package/src/utils/chainlink-oracles-goerli.csv +8 -0
  490. package/src/utils/chainlink-oracles.csv +217 -0
  491. package/src/utils/conversion.ts +27 -0
  492. package/src/utils/dex-price.ts +136 -0
  493. package/src/utils/index.ts +4 -0
  494. package/src/utils/price.ts +95 -0
  495. package/src/utils/token.ts +70 -0
  496. package/dist/base-processor-template.d.ts +0 -20
  497. package/dist/base-processor-template.js.map +0 -1
  498. package/dist/base-processor.d.ts +0 -22
  499. package/dist/base-processor.js +0 -103
  500. package/dist/base-processor.js.map +0 -1
  501. package/dist/bind-options.js.map +0 -1
  502. package/dist/binds.d.ts +0 -10
  503. package/dist/binds.js +0 -58
  504. package/dist/binds.js.map +0 -1
  505. package/dist/builtin/erc20/index.js.map +0 -1
  506. package/dist/builtin/internal/Erc20.js.map +0 -1
  507. package/dist/builtin/internal/common.js.map +0 -1
  508. package/dist/builtin/internal/erc20_processor.d.ts +0 -38
  509. package/dist/builtin/internal/erc20_processor.js +0 -209
  510. package/dist/builtin/internal/erc20_processor.js.map +0 -1
  511. package/dist/builtin/internal/factories/Erc20__factory.js.map +0 -1
  512. package/dist/builtin/internal/factories/index.d.ts +0 -1
  513. package/dist/builtin/internal/factories/index.js +0 -9
  514. package/dist/builtin/internal/factories/index.js.map +0 -1
  515. package/dist/builtin/internal/index.d.ts +0 -3
  516. package/dist/builtin/internal/index.js.map +0 -1
  517. package/dist/cli/build.d.ts +0 -3
  518. package/dist/cli/build.js +0 -160
  519. package/dist/cli/build.js.map +0 -1
  520. package/dist/cli/cli.js +0 -212
  521. package/dist/cli/cli.js.map +0 -1
  522. package/dist/cli/config.d.ts +0 -14
  523. package/dist/cli/config.js +0 -24
  524. package/dist/cli/config.js.map +0 -1
  525. package/dist/cli/key.d.ts +0 -2
  526. package/dist/cli/key.js +0 -44
  527. package/dist/cli/key.js.map +0 -1
  528. package/dist/cli/solana-code-gen.d.ts +0 -2
  529. package/dist/cli/solana-code-gen.js +0 -19
  530. package/dist/cli/solana-code-gen.js.map +0 -1
  531. package/dist/cli/upload.d.ts +0 -2
  532. package/dist/cli/upload.js +0 -59
  533. package/dist/cli/upload.js.map +0 -1
  534. package/dist/cli/webpack.config.js +0 -41
  535. package/dist/context.d.ts +0 -39
  536. package/dist/context.js +0 -75
  537. package/dist/context.js.map +0 -1
  538. package/dist/contract-namer.d.ts +0 -6
  539. package/dist/contract-namer.js +0 -20
  540. package/dist/contract-namer.js.map +0 -1
  541. package/dist/error.d.ts +0 -2
  542. package/dist/error.js +0 -39
  543. package/dist/error.js.map +0 -1
  544. package/dist/gen/builtin.js.map +0 -1
  545. package/dist/gen/google/protobuf/empty.js.map +0 -1
  546. package/dist/gen/processor/protos/processor.d.ts +0 -598
  547. package/dist/gen/processor/protos/processor.js +0 -2424
  548. package/dist/gen/processor/protos/processor.js.map +0 -1
  549. package/dist/index.d.ts +0 -13
  550. package/dist/index.js +0 -54
  551. package/dist/index.js.map +0 -1
  552. package/dist/meter.d.ts +0 -25
  553. package/dist/meter.js +0 -114
  554. package/dist/meter.js.map +0 -1
  555. package/dist/numberish.d.ts +0 -7
  556. package/dist/numberish.js +0 -74
  557. package/dist/numberish.js.map +0 -1
  558. package/dist/numberish.test.js +0 -54
  559. package/dist/numberish.test.js.map +0 -1
  560. package/dist/processor-runner.js +0 -67
  561. package/dist/processor-runner.js.map +0 -1
  562. package/dist/processor-state.d.ts +0 -16
  563. package/dist/processor-state.js +0 -20
  564. package/dist/processor-state.js.map +0 -1
  565. package/dist/provider.js.map +0 -1
  566. package/dist/service.d.ts +0 -22
  567. package/dist/service.js +0 -361
  568. package/dist/service.js.map +0 -1
  569. package/dist/solana/builtin/spl-token-processor.d.ts +0 -25
  570. package/dist/solana/builtin/spl-token-processor.js +0 -152
  571. package/dist/solana/builtin/spl-token-processor.js.map +0 -1
  572. package/dist/solana-processor.d.ts +0 -28
  573. package/dist/solana-processor.js +0 -79
  574. package/dist/solana-processor.js.map +0 -1
  575. package/dist/target-ethers-sentio/codegen.js +0 -201
  576. package/dist/target-ethers-sentio/codegen.js.map +0 -1
  577. package/dist/test-case/clean-test.d.ts +0 -1
  578. package/dist/test-case/clean-test.js +0 -9
  579. package/dist/test-case/clean-test.js.map +0 -1
  580. package/dist/test-case/erc20-template.d.ts +0 -1
  581. package/dist/test-case/erc20-template.js +0 -23
  582. package/dist/test-case/erc20-template.js.map +0 -1
  583. package/dist/test-case/erc20-template.test.js +0 -69
  584. package/dist/test-case/erc20-template.test.js.map +0 -1
  585. package/dist/test-case/erc20.d.ts +0 -1
  586. package/dist/test-case/erc20.js +0 -42
  587. package/dist/test-case/erc20.js.map +0 -1
  588. package/dist/test-case/erc20.test.js +0 -154
  589. package/dist/test-case/erc20.test.js.map +0 -1
  590. package/dist/test-case/mirrorworld.js +0 -42
  591. package/dist/test-case/mirrorworld.js.map +0 -1
  592. package/dist/test-case/solana.test.js +0 -58
  593. package/dist/test-case/solana.test.js.map +0 -1
  594. package/dist/test-case/types/game_wallet.d.ts +0 -45
  595. package/dist/test-case/types/game_wallet.js +0 -1396
  596. package/dist/test-case/types/game_wallet.js.map +0 -1
  597. package/dist/test-case/types/game_wallet_processor.d.ts +0 -107
  598. package/dist/test-case/types/game_wallet_processor.js +0 -102
  599. package/dist/test-case/types/game_wallet_processor.js.map +0 -1
  600. package/dist/test-case/types/wormhole_processor.d.ts +0 -16
  601. package/dist/test-case/types/wormhole_processor.js.map +0 -1
  602. package/dist/test-case/wormhole-token-bridge.js +0 -7
  603. package/dist/test-case/wormhole-token-bridge.js.map +0 -1
  604. package/dist/utils/chainmap.d.ts +0 -4
  605. package/dist/utils/chainmap.js +0 -95
  606. package/dist/utils/chainmap.js.map +0 -1
  607. package/dist/utils/index.d.ts +0 -1
  608. package/dist/utils/index.js +0 -6
  609. package/dist/utils/index.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { SolanaBaseProcessor, SolanaContext, SolanaBindOptions } from '@sentio/sdk';
2
+ import { Instruction } from '@project-serum/anchor';
3
+ export declare class TokenBridgeProcessor extends SolanaBaseProcessor {
4
+ private readonly transferDataValues;
5
+ private readonly transferDataWithPayloadValues;
6
+ private readonly attestTokenValues;
7
+ private readonly initializeDataValues;
8
+ static bind(options: SolanaBindOptions): TokenBridgeProcessor;
9
+ decodeInstruction: (rawInstruction: string) => Instruction | null;
10
+ onInitialize(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor;
11
+ onAttestToken(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor;
12
+ onTransferWrapped(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor;
13
+ onTransferNativeWithPayload(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor;
14
+ onTransferWrappedWithPaylod(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor;
15
+ onTransferNative(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor;
16
+ }
@@ -27,26 +27,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.TokenBridgeProcessor = void 0;
30
- const borsh = __importStar(require("@project-serum/borsh"));
31
30
  const sdk_1 = require("@sentio/sdk");
31
+ const borsh = __importStar(require("@coral-xyz/borsh"));
32
32
  const bs58_1 = __importDefault(require("bs58"));
33
33
  // https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/lib.rs#L100
34
- var TokenBrigeInstruction;
35
- (function (TokenBrigeInstruction) {
36
- TokenBrigeInstruction[TokenBrigeInstruction["Initialize"] = 0] = "Initialize";
37
- TokenBrigeInstruction[TokenBrigeInstruction["AttestToken"] = 1] = "AttestToken";
38
- TokenBrigeInstruction[TokenBrigeInstruction["CompleteNative"] = 2] = "CompleteNative";
39
- TokenBrigeInstruction[TokenBrigeInstruction["CompleteWrapped"] = 3] = "CompleteWrapped";
40
- TokenBrigeInstruction[TokenBrigeInstruction["TransferWrapped"] = 4] = "TransferWrapped";
41
- TokenBrigeInstruction[TokenBrigeInstruction["TransferNative"] = 5] = "TransferNative";
42
- TokenBrigeInstruction[TokenBrigeInstruction["RegisterChain"] = 6] = "RegisterChain";
43
- TokenBrigeInstruction[TokenBrigeInstruction["CreateWrapped"] = 7] = "CreateWrapped";
44
- TokenBrigeInstruction[TokenBrigeInstruction["UpgradeContract"] = 8] = "UpgradeContract";
45
- TokenBrigeInstruction[TokenBrigeInstruction["CompleteNativeWithPayload"] = 9] = "CompleteNativeWithPayload";
46
- TokenBrigeInstruction[TokenBrigeInstruction["CompleteWrappedWithPayload"] = 10] = "CompleteWrappedWithPayload";
47
- TokenBrigeInstruction[TokenBrigeInstruction["TransferWrappedWithPayload"] = 11] = "TransferWrappedWithPayload";
48
- TokenBrigeInstruction[TokenBrigeInstruction["TransferNativeWithPayload"] = 12] = "TransferNativeWithPayload";
49
- })(TokenBrigeInstruction || (TokenBrigeInstruction = {}));
34
+ var TokenBridgeInstruction;
35
+ (function (TokenBridgeInstruction) {
36
+ TokenBridgeInstruction[TokenBridgeInstruction["Initialize"] = 0] = "Initialize";
37
+ TokenBridgeInstruction[TokenBridgeInstruction["AttestToken"] = 1] = "AttestToken";
38
+ TokenBridgeInstruction[TokenBridgeInstruction["CompleteNative"] = 2] = "CompleteNative";
39
+ TokenBridgeInstruction[TokenBridgeInstruction["CompleteWrapped"] = 3] = "CompleteWrapped";
40
+ TokenBridgeInstruction[TokenBridgeInstruction["TransferWrapped"] = 4] = "TransferWrapped";
41
+ TokenBridgeInstruction[TokenBridgeInstruction["TransferNative"] = 5] = "TransferNative";
42
+ TokenBridgeInstruction[TokenBridgeInstruction["RegisterChain"] = 6] = "RegisterChain";
43
+ TokenBridgeInstruction[TokenBridgeInstruction["CreateWrapped"] = 7] = "CreateWrapped";
44
+ TokenBridgeInstruction[TokenBridgeInstruction["UpgradeContract"] = 8] = "UpgradeContract";
45
+ TokenBridgeInstruction[TokenBridgeInstruction["CompleteNativeWithPayload"] = 9] = "CompleteNativeWithPayload";
46
+ TokenBridgeInstruction[TokenBridgeInstruction["CompleteWrappedWithPayload"] = 10] = "CompleteWrappedWithPayload";
47
+ TokenBridgeInstruction[TokenBridgeInstruction["TransferWrappedWithPayload"] = 11] = "TransferWrappedWithPayload";
48
+ TokenBridgeInstruction[TokenBridgeInstruction["TransferNativeWithPayload"] = 12] = "TransferNativeWithPayload";
49
+ })(TokenBridgeInstruction || (TokenBridgeInstruction = {}));
50
50
  class TokenBridgeProcessor extends sdk_1.SolanaBaseProcessor {
51
51
  transferDataValues = [
52
52
  borsh.u32('nonce'),
@@ -70,8 +70,11 @@ class TokenBridgeProcessor extends sdk_1.SolanaBaseProcessor {
70
70
  initializeDataValues = [
71
71
  borsh.publicKey('bridge')
72
72
  ];
73
- static bind(address, endpoint, name = 'Wormhole') {
74
- return new TokenBridgeProcessor(name, address, endpoint);
73
+ static bind(options) {
74
+ if (options && !options.name) {
75
+ options.name = 'WormholeTokenBridge';
76
+ }
77
+ return new TokenBridgeProcessor(options);
75
78
  }
76
79
  decodeInstruction = (ins) => {
77
80
  const u8Arr = bs58_1.default.decode(ins);
@@ -81,112 +84,112 @@ class TokenBridgeProcessor extends sdk_1.SolanaBaseProcessor {
81
84
  let data;
82
85
  // wormhole pass intruction's enum value as its first instrcution data
83
86
  switch (u8Arr[0]) {
84
- case TokenBrigeInstruction.Initialize:
87
+ case TokenBridgeInstruction.Initialize:
85
88
  return {
86
89
  data: '',
87
- name: TokenBrigeInstruction[TokenBrigeInstruction.Initialize]
90
+ name: TokenBridgeInstruction[TokenBridgeInstruction.Initialize]
88
91
  };
89
- case TokenBrigeInstruction.TransferNative:
92
+ case TokenBridgeInstruction.TransferNative:
90
93
  // struct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295
91
94
  data = borsh.struct(this.transferDataValues, 'TransferNativeData').decode(Buffer.from(u8Arr.slice(1)));
92
95
  return {
93
96
  data,
94
- name: TokenBrigeInstruction[TokenBrigeInstruction.TransferNative]
97
+ name: TokenBridgeInstruction[TokenBridgeInstruction.TransferNative]
95
98
  };
96
- case TokenBrigeInstruction.TransferWrapped:
99
+ case TokenBridgeInstruction.TransferWrapped:
97
100
  // stuct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295
98
101
  data = borsh.struct(this.transferDataValues, 'TransferWrappedData').decode(Buffer.from(u8Arr.slice(1)));
99
102
  return {
100
103
  data,
101
- name: TokenBrigeInstruction[TokenBrigeInstruction.TransferWrapped]
104
+ name: TokenBridgeInstruction[TokenBridgeInstruction.TransferWrapped]
102
105
  };
103
- case TokenBrigeInstruction.TransferNativeWithPayload:
106
+ case TokenBridgeInstruction.TransferNativeWithPayload:
104
107
  data = borsh.struct(this.transferDataWithPayloadValues, 'TransferNativeWithPayloadData').decode(Buffer.from(u8Arr.slice(1)));
105
108
  return {
106
109
  data,
107
- name: TokenBrigeInstruction[TokenBrigeInstruction.TransferNativeWithPayload]
110
+ name: TokenBridgeInstruction[TokenBridgeInstruction.TransferNativeWithPayload]
108
111
  };
109
- case TokenBrigeInstruction.TransferWrappedWithPayload:
112
+ case TokenBridgeInstruction.TransferWrappedWithPayload:
110
113
  data = borsh.struct(this.transferDataWithPayloadValues, 'TransferWrappedWithPayloadData').decode(Buffer.from(u8Arr.slice(1)));
111
114
  return {
112
115
  data,
113
- name: TokenBrigeInstruction[TokenBrigeInstruction.TransferWrappedWithPayload]
116
+ name: TokenBridgeInstruction[TokenBridgeInstruction.TransferWrappedWithPayload]
114
117
  };
115
- case TokenBrigeInstruction.Initialize:
118
+ case TokenBridgeInstruction.Initialize:
116
119
  data = borsh.struct(this.initializeDataValues, 'InitializeData').decode(Buffer.from(u8Arr.slice(1)));
117
120
  return {
118
121
  data,
119
- name: TokenBrigeInstruction[TokenBrigeInstruction.Initialize]
122
+ name: TokenBridgeInstruction[TokenBridgeInstruction.Initialize]
120
123
  };
121
- case TokenBrigeInstruction.AttestToken:
124
+ case TokenBridgeInstruction.AttestToken:
122
125
  data = borsh.struct(this.attestTokenValues, 'AttestTokenData').decode(Buffer.from(u8Arr.slice(1)));
123
126
  return {
124
127
  data,
125
- name: TokenBrigeInstruction[TokenBrigeInstruction.AttestToken]
128
+ name: TokenBridgeInstruction[TokenBridgeInstruction.AttestToken]
126
129
  };
127
- case TokenBrigeInstruction.CompleteNative:
128
- case TokenBrigeInstruction.CompleteNativeWithPayload:
129
- case TokenBrigeInstruction.CompleteWrapped:
130
- case TokenBrigeInstruction.CompleteWrappedWithPayload:
131
- case TokenBrigeInstruction.CreateWrapped:
132
- case TokenBrigeInstruction.UpgradeContract:
133
- case TokenBrigeInstruction.RegisterChain:
130
+ case TokenBridgeInstruction.CompleteNative:
131
+ case TokenBridgeInstruction.CompleteNativeWithPayload:
132
+ case TokenBridgeInstruction.CompleteWrapped:
133
+ case TokenBridgeInstruction.CompleteWrappedWithPayload:
134
+ case TokenBridgeInstruction.CreateWrapped:
135
+ case TokenBridgeInstruction.UpgradeContract:
136
+ case TokenBridgeInstruction.RegisterChain:
134
137
  return {
135
138
  data: '',
136
- name: TokenBrigeInstruction[u8Arr[0]]
139
+ name: TokenBridgeInstruction[u8Arr[0]]
137
140
  };
138
141
  default:
139
142
  return null;
140
143
  }
141
144
  };
142
145
  onInitialize(handler) {
143
- this.onInstruction('Initialize', (ins, ctx) => {
146
+ this.onInstruction('Initialize', (ins, ctx, accounts) => {
144
147
  if (ins) {
145
- handler(ins.data, ctx);
148
+ handler(ins.data, accounts, ctx);
146
149
  }
147
150
  });
148
151
  return this;
149
152
  }
150
153
  onAttestToken(handler) {
151
- this.onInstruction('AttestToken', (ins, ctx) => {
154
+ this.onInstruction('AttestToken', (ins, ctx, accounts) => {
152
155
  if (ins) {
153
- handler(ins.data, ctx);
156
+ handler(ins.data, accounts, ctx);
154
157
  }
155
158
  });
156
159
  return this;
157
160
  }
158
161
  onTransferWrapped(handler) {
159
- this.onInstruction('TransferWrapped', (ins, ctx) => {
162
+ this.onInstruction('TransferWrapped', (ins, ctx, accounts) => {
160
163
  if (ins) {
161
- handler(ins.data, ctx);
164
+ handler(ins.data, accounts, ctx);
162
165
  }
163
166
  });
164
167
  return this;
165
168
  }
166
169
  onTransferNativeWithPayload(handler) {
167
- this.onInstruction('TransferNativeWithPayload', (ins, ctx) => {
170
+ this.onInstruction('TransferNativeWithPayload', (ins, ctx, accounts) => {
168
171
  if (ins) {
169
- handler(ins.data, ctx);
172
+ handler(ins.data, accounts, ctx);
170
173
  }
171
174
  });
172
175
  return this;
173
176
  }
174
177
  onTransferWrappedWithPaylod(handler) {
175
- this.onInstruction('TransferWrappedWithPaylod', (ins, ctx) => {
178
+ this.onInstruction('TransferWrappedWithPaylod', (ins, ctx, accounts) => {
176
179
  if (ins) {
177
- handler(ins.data, ctx);
180
+ handler(ins.data, accounts, ctx);
178
181
  }
179
182
  });
180
183
  return this;
181
184
  }
182
185
  onTransferNative(handler) {
183
- this.onInstruction('TransferNative', (ins, ctx) => {
186
+ this.onInstruction('TransferNative', (ins, ctx, accounts) => {
184
187
  if (ins) {
185
- handler(ins.data, ctx);
188
+ handler(ins.data, accounts, ctx);
186
189
  }
187
190
  });
188
191
  return this;
189
192
  }
190
193
  }
191
194
  exports.TokenBridgeProcessor = TokenBridgeProcessor;
192
- //# sourceMappingURL=wormhole_processor.js.map
195
+ //# sourceMappingURL=wormhole-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole-processor.js","sourceRoot":"","sources":["../../../src/builtin/solana/wormhole-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { SolanaBaseProcessor, SolanaContext, SolanaBindOptions } from '@sentio/sdk'\nimport { Instruction } from '@project-serum/anchor'\nimport * as borsh from \"@coral-xyz/borsh\";\nimport bs58 from 'bs58'\n\n// https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/lib.rs#L100\nenum TokenBridgeInstruction {\n Initialize = 0,\n AttestToken,\n CompleteNative, // no args\n CompleteWrapped, // no args\n TransferWrapped,\n TransferNative,\n RegisterChain, // no args\n CreateWrapped, // no args\n UpgradeContract, // no args\n CompleteNativeWithPayload, // no args\n CompleteWrappedWithPayload, // no args\n TransferWrappedWithPayload,\n TransferNativeWithPayload,\n}\n\nexport class TokenBridgeProcessor extends SolanaBaseProcessor {\n\n private readonly transferDataValues = [\n borsh.u32('nonce'),\n borsh.u64('amount'),\n borsh.u64('fee'),\n borsh.array(borsh.u8(undefined), 32, 'target_address'),\n borsh.u16('target_chain')\n ]\n // https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer_payload.rs#L170\n private readonly transferDataWithPayloadValues = [\n borsh.u32('nonce'),\n borsh.u64('amount'),\n borsh.array(borsh.u8(undefined), 32, 'target_address'),\n borsh.u16('target_chain'),\n borsh.vecU8('payload'),\n borsh.option(borsh.publicKey(undefined), 'cpi_program_id')\n ]\n private readonly attestTokenValues = [\n borsh.u32('nonce')\n ]\n private readonly initializeDataValues = [\n borsh.publicKey('bridge')\n ]\n\n static bind(options: SolanaBindOptions): TokenBridgeProcessor {\n if (options && !options.name) {\n options.name = 'WormholeTokenBridge'\n }\n return new TokenBridgeProcessor(options)\n }\n\n decodeInstruction: (rawInstruction: string) => Instruction | null = (ins) => {\n const u8Arr = bs58.decode(ins)\n if (u8Arr.length === 0) {\n return null\n }\n\n let data: any\n // wormhole pass intruction's enum value as its first instrcution data\n switch (u8Arr[0]) {\n case TokenBridgeInstruction.Initialize:\n return {\n data: '',\n name: TokenBridgeInstruction[TokenBridgeInstruction.Initialize]\n }\n case TokenBridgeInstruction.TransferNative:\n // struct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295\n data = borsh.struct(this.transferDataValues, 'TransferNativeData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBridgeInstruction[TokenBridgeInstruction.TransferNative]\n }\n case TokenBridgeInstruction.TransferWrapped:\n // stuct is defined at: https://github.com/certusone/wormhole/blob/8818d4b8f0471095dd48fa6f5da9c315cbfc9b52/solana/modules/token_bridge/program/src/api/transfer.rs#L295\n data = borsh.struct(this.transferDataValues, 'TransferWrappedData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBridgeInstruction[TokenBridgeInstruction.TransferWrapped]\n }\n case TokenBridgeInstruction.TransferNativeWithPayload:\n data = borsh.struct(this.transferDataWithPayloadValues, 'TransferNativeWithPayloadData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBridgeInstruction[TokenBridgeInstruction.TransferNativeWithPayload]\n }\n case TokenBridgeInstruction.TransferWrappedWithPayload:\n data = borsh.struct(this.transferDataWithPayloadValues, 'TransferWrappedWithPayloadData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBridgeInstruction[TokenBridgeInstruction.TransferWrappedWithPayload]\n }\n case TokenBridgeInstruction.Initialize:\n data = borsh.struct(this.initializeDataValues, 'InitializeData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBridgeInstruction[TokenBridgeInstruction.Initialize]\n }\n case TokenBridgeInstruction.AttestToken:\n data = borsh.struct(this.attestTokenValues, 'AttestTokenData').decode(Buffer.from(u8Arr.slice(1)))\n return {\n data,\n name: TokenBridgeInstruction[TokenBridgeInstruction.AttestToken]\n }\n case TokenBridgeInstruction.CompleteNative:\n case TokenBridgeInstruction.CompleteNativeWithPayload:\n case TokenBridgeInstruction.CompleteWrapped:\n case TokenBridgeInstruction.CompleteWrappedWithPayload:\n case TokenBridgeInstruction.CreateWrapped:\n case TokenBridgeInstruction.UpgradeContract:\n case TokenBridgeInstruction.RegisterChain:\n return {\n data: '',\n name: TokenBridgeInstruction[u8Arr[0]]\n }\n\n default:\n return null\n }\n }\n\n onInitialize(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('Initialize', (ins: Instruction, ctx, accounts: string[]) => {\n if (ins) {\n handler(ins.data, accounts, ctx)\n }\n })\n return this\n }\n\n onAttestToken(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('AttestToken', (ins: Instruction, ctx, accounts: string[]) => {\n if (ins) {\n handler(ins.data, accounts, ctx)\n }\n })\n return this\n }\n\n\n onTransferWrapped(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferWrapped', (ins: Instruction, ctx, accounts: string[]) => {\n if (ins) {\n handler(ins.data, accounts, ctx)\n }\n })\n return this\n }\n\n onTransferNativeWithPayload(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferNativeWithPayload', (ins: Instruction, ctx, accounts: string[]) => {\n if (ins) {\n handler(ins.data, accounts, ctx)\n }\n })\n return this\n }\n\n onTransferWrappedWithPaylod(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferWrappedWithPaylod', (ins: Instruction, ctx, accounts: string[]) => {\n if (ins) {\n handler(ins.data, accounts, ctx)\n }\n })\n return this\n }\n\n onTransferNative(handler: (args: any, accounts: string[], ctx: SolanaContext) => void): TokenBridgeProcessor {\n this.onInstruction('TransferNative', (ins: Instruction, ctx, accounts: string[]) => {\n if (ins) {\n handler(ins.data, accounts, ctx)\n }\n })\n return this\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "../internal/weth9_processor";
2
+ export * from "../internal/WETH9";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("../internal/weth9_processor"), exports);
21
+ __exportStar(require("../internal/WETH9"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/builtin/weth9/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;;;;;;;;;;;;;;;;AAEpB,8DAA4C;AAC5C,oDAAkC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nexport * from \"../internal/weth9_processor\";\nexport * from \"../internal/WETH9\";\n"]}
@@ -0,0 +1,6 @@
1
+ import { Log } from "@ethersproject/providers";
2
+ import { ApprovalEventObject, TransferEventObject, DepositEventObject, WithdrawalEventObject } from ".";
3
+ export declare function mockApprovalLog(contractAddress: string, event: ApprovalEventObject): Log;
4
+ export declare function mockTransferLog(contractAddress: string, event: TransferEventObject): Log;
5
+ export declare function mockDepositLog(contractAddress: string, event: DepositEventObject): Log;
6
+ export declare function mockWithdrawalLog(contractAddress: string, event: WithdrawalEventObject): Log;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockWithdrawalLog = exports.mockDepositLog = exports.mockTransferLog = exports.mockApprovalLog = void 0;
4
+ const _1 = require(".");
5
+ const mockField = {
6
+ blockHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
7
+ blockNumber: 0,
8
+ logIndex: 0,
9
+ removed: false,
10
+ transactionHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
11
+ transactionIndex: 0,
12
+ };
13
+ function mockApprovalLog(contractAddress, event) {
14
+ const contract = (0, _1.getWETH9Contract)(contractAddress);
15
+ const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Approval"), [event.src, event.guy, event.wad]);
16
+ return {
17
+ ...mockField,
18
+ address: contractAddress,
19
+ data: encodedLog.data,
20
+ topics: encodedLog.topics,
21
+ };
22
+ }
23
+ exports.mockApprovalLog = mockApprovalLog;
24
+ function mockTransferLog(contractAddress, event) {
25
+ const contract = (0, _1.getWETH9Contract)(contractAddress);
26
+ const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Transfer"), [event.src, event.dst, event.wad]);
27
+ return {
28
+ ...mockField,
29
+ address: contractAddress,
30
+ data: encodedLog.data,
31
+ topics: encodedLog.topics,
32
+ };
33
+ }
34
+ exports.mockTransferLog = mockTransferLog;
35
+ function mockDepositLog(contractAddress, event) {
36
+ const contract = (0, _1.getWETH9Contract)(contractAddress);
37
+ const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Deposit"), [event.dst, event.wad]);
38
+ return {
39
+ ...mockField,
40
+ address: contractAddress,
41
+ data: encodedLog.data,
42
+ topics: encodedLog.topics,
43
+ };
44
+ }
45
+ exports.mockDepositLog = mockDepositLog;
46
+ function mockWithdrawalLog(contractAddress, event) {
47
+ const contract = (0, _1.getWETH9Contract)(contractAddress);
48
+ const encodedLog = contract.rawContract.interface.encodeEventLog(contract.rawContract.interface.getEvent("Withdrawal"), [event.src, event.wad]);
49
+ return {
50
+ ...mockField,
51
+ address: contractAddress,
52
+ data: encodedLog.data,
53
+ topics: encodedLog.topics,
54
+ };
55
+ }
56
+ exports.mockWithdrawalLog = mockWithdrawalLog;
57
+ //# sourceMappingURL=test-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/builtin/weth9/test-utils.ts"],"names":[],"mappings":";;;AAIA,wBAMW;AACX,MAAM,SAAS,GAAG;IAChB,SAAS,EACP,oEAAoE;IACtE,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,eAAe,EACb,oEAAoE;IACtE,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAEF,SAAgB,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,0CAeC;AAED,SAAgB,eAAe,CAC7B,eAAuB,EACvB,KAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,0CAeC;AAED,SAAgB,cAAc,CAC5B,eAAuB,EACvB,KAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAClD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,wCAeC;AAED,SAAgB,iBAAiB,CAC/B,eAAuB,EACvB,KAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAA,mBAAgB,EAAC,eAAe,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAC9D,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EACrD,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CACvB,CAAC;IACF,OAAO;QACL,GAAG,SAAS;QACZ,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAfD,8CAeC","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { Log } from \"@ethersproject/providers\";\nimport {\n getWETH9Contract,\n ApprovalEventObject,\n TransferEventObject,\n DepositEventObject,\n WithdrawalEventObject,\n} from \".\";\nconst mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n};\n\nexport function mockApprovalLog(\n contractAddress: string,\n event: ApprovalEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Approval\"),\n [event.src, event.guy, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockTransferLog(\n contractAddress: string,\n event: TransferEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Transfer\"),\n [event.src, event.dst, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockDepositLog(\n contractAddress: string,\n event: DepositEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Deposit\"),\n [event.dst, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n\nexport function mockWithdrawalLog(\n contractAddress: string,\n event: WithdrawalEventObject\n): Log {\n const contract = getWETH9Contract(contractAddress);\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n contract.rawContract.interface.getEvent(\"Withdrawal\"),\n [event.src, event.wad]\n );\n return {\n ...mockField,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n };\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export interface ChainConfig {
2
+ ChainID: string;
3
+ Https: string[];
4
+ WebSockets?: string[];
5
+ ChainServer?: string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=chain-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-config.js","sourceRoot":"","sources":["../src/chain-config.ts"],"names":[],"mappings":"","sourcesContent":["export interface ChainConfig {\n ChainID: string\n Https: string[]\n WebSockets?: string[]\n ChainServer?: string\n}\n"]}
@@ -0,0 +1,58 @@
1
+ import { ListStateStorage } from '../state/state-storage';
2
+ import { AccountBindOptions } from './bind-options';
3
+ import { TransferEvent as ERC20TransferEvent } from '../builtin/internal/ERC20';
4
+ import { TransferEvent as ERC721TransferEvent } from '../builtin/internal/ERC721';
5
+ import { AccountContext } from './context';
6
+ import { PromiseOrVoid } from '../promise-or-void';
7
+ import { Event } from '@ethersproject/contracts';
8
+ import { AddressOrTypeEventFilter, EventsHandler } from './base-processor';
9
+ export declare class AccountProcessorState extends ListStateStorage<AccountProcessor> {
10
+ static INSTANCE: AccountProcessorState;
11
+ }
12
+ export declare class AccountProcessor {
13
+ config: AccountBindOptions;
14
+ eventHandlers: EventsHandler[];
15
+ static bind(config: AccountBindOptions): AccountProcessor;
16
+ protected constructor(config: AccountBindOptions);
17
+ getChainId(): number;
18
+ /**
19
+ * Register custom handler function to process erc20 transfer event to this account
20
+ * @param handler custom handler function
21
+ * @param tokensAddresses all the erc20 token address to watch
22
+ */
23
+ onERC20TransferIn(handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid, tokensAddresses?: string[]): this;
24
+ /**
25
+ * Register custom handler function to process erc20 transfer event from this account
26
+ * @param handler custom handler function
27
+ * @param tokensAddresses all the erc20 token address to watch
28
+ */
29
+ onERC20TransferOut(handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid, tokensAddresses?: string[]): this;
30
+ /**
31
+ * Register custom handler function to process erc20 mint for this account
32
+ * @param handler custom handler function
33
+ * @param tokensAddresses all the erc20 token address to watch
34
+ */
35
+ onERC20Minted(handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid, tokensAddresses?: string[]): this;
36
+ private onERC20;
37
+ /**
38
+ * Register custom handler function to process ERC721 transfer event to this account
39
+ * @param handler custom handler function
40
+ * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721
41
+ */
42
+ onERC721TransferIn(handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid, collections: string[]): this;
43
+ /**
44
+ * Register custom handler function to process ERC721 transfer event from this account
45
+ * @param handler custom handler function
46
+ * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721
47
+ */
48
+ onERC721TransferOut(handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid, collections: string[]): this;
49
+ /**
50
+ * Register custom handler function to process ERC721 mint for this account
51
+ * @param handler custom handler function
52
+ * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721
53
+ */
54
+ onERC721Minted(handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid, collections?: string[]): this;
55
+ private onERC721;
56
+ private onERC;
57
+ protected onEvent(handler: (event: Event, ctx: AccountContext) => PromiseOrVoid, filter: AddressOrTypeEventFilter | AddressOrTypeEventFilter[]): this;
58
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccountProcessor = exports.AccountProcessorState = void 0;
4
+ const state_storage_1 = require("../state/state-storage");
5
+ const internal_1 = require("../builtin/internal");
6
+ const sdk_1 = require("@sentio/sdk");
7
+ const providers_1 = require("@ethersproject/providers");
8
+ const context_1 = require("./context");
9
+ class AccountProcessorState extends state_storage_1.ListStateStorage {
10
+ static INSTANCE = new AccountProcessorState();
11
+ }
12
+ exports.AccountProcessorState = AccountProcessorState;
13
+ const ERC20_CONTRACT = internal_1.ERC20__factory.connect('', sdk_1.DummyProvider);
14
+ const ERC721_CONTRACT = internal_1.ERC721__factory.connect('', sdk_1.DummyProvider);
15
+ class AccountProcessor {
16
+ config;
17
+ eventHandlers = [];
18
+ static bind(config) {
19
+ const processor = new AccountProcessor(config);
20
+ AccountProcessorState.INSTANCE.addValue(processor);
21
+ return processor;
22
+ }
23
+ constructor(config) {
24
+ this.config = config;
25
+ }
26
+ getChainId() {
27
+ return (0, providers_1.getNetwork)(this.config.network || 1).chainId;
28
+ }
29
+ /**
30
+ * Register custom handler function to process erc20 transfer event to this account
31
+ * @param handler custom handler function
32
+ * @param tokensAddresses all the erc20 token address to watch
33
+ */
34
+ onERC20TransferIn(handler, tokensAddresses = []) {
35
+ return this.onERC20(handler, tokensAddresses, (address) => ERC20_CONTRACT.filters.Transfer(null, this.config.address));
36
+ }
37
+ /**
38
+ * Register custom handler function to process erc20 transfer event from this account
39
+ * @param handler custom handler function
40
+ * @param tokensAddresses all the erc20 token address to watch
41
+ */
42
+ onERC20TransferOut(handler, tokensAddresses = []) {
43
+ return this.onERC20(handler, tokensAddresses, (address) => ERC20_CONTRACT.filters.Transfer(this.config.address));
44
+ }
45
+ /**
46
+ * Register custom handler function to process erc20 mint for this account
47
+ * @param handler custom handler function
48
+ * @param tokensAddresses all the erc20 token address to watch
49
+ */
50
+ onERC20Minted(handler, tokensAddresses = []) {
51
+ return this.onERC20(handler, tokensAddresses, (address) => ERC20_CONTRACT.filters.Transfer('0x0000000000000000000000000000000000000000', this.config.address));
52
+ }
53
+ onERC20(handler, tokensAddresses = [], defaultFilter) {
54
+ return this.onERC(handler, tokensAddresses, defaultFilter, sdk_1.AddressType.ERC20);
55
+ }
56
+ /**
57
+ * Register custom handler function to process ERC721 transfer event to this account
58
+ * @param handler custom handler function
59
+ * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721
60
+ */
61
+ onERC721TransferIn(handler, collections) {
62
+ return this.onERC721(handler, collections, (address) => ERC721_CONTRACT.filters.Transfer(null, this.config.address));
63
+ }
64
+ /**
65
+ * Register custom handler function to process ERC721 transfer event from this account
66
+ * @param handler custom handler function
67
+ * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721
68
+ */
69
+ onERC721TransferOut(handler, collections) {
70
+ return this.onERC721(handler, collections, (address) => ERC721_CONTRACT.filters.Transfer(this.config.address));
71
+ }
72
+ /**
73
+ * Register custom handler function to process ERC721 mint for this account
74
+ * @param handler custom handler function
75
+ * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721
76
+ */
77
+ onERC721Minted(handler, collections = []) {
78
+ return this.onERC721(handler, collections, (address) => ERC721_CONTRACT.filters.Transfer('0x0000000000000000000000000000000000000000', this.config.address));
79
+ }
80
+ onERC721(handler, collections, defaultFilter) {
81
+ return this.onERC(handler, collections, defaultFilter, sdk_1.AddressType.ERC721);
82
+ }
83
+ onERC(handler, contractAddresses, defaultFilter, addressType) {
84
+ const filters = [];
85
+ for (const token of contractAddresses) {
86
+ const filter = defaultFilter(this.config.address);
87
+ filter.address = token;
88
+ filters.push(filter);
89
+ }
90
+ if (!filters.length) {
91
+ const filter = defaultFilter(this.config.address);
92
+ filter.address = undefined;
93
+ filter.addressType = addressType;
94
+ filters.push(filter);
95
+ }
96
+ return this.onEvent(handler, filters);
97
+ }
98
+ onEvent(handler, filter) {
99
+ const chainId = this.getChainId();
100
+ let _filters = [];
101
+ if (Array.isArray(filter)) {
102
+ _filters = filter;
103
+ }
104
+ else {
105
+ _filters.push(filter);
106
+ }
107
+ let hasVaildConfig = false;
108
+ for (const filter of _filters) {
109
+ if (filter.address) {
110
+ hasVaildConfig = true;
111
+ break;
112
+ }
113
+ if (filter.topics && filter.topics.length) {
114
+ hasVaildConfig = true;
115
+ break;
116
+ }
117
+ }
118
+ if (!hasVaildConfig) {
119
+ throw Error('no valid config has been found for this account');
120
+ }
121
+ const config = this.config;
122
+ this.eventHandlers.push({
123
+ filters: _filters,
124
+ handler: async function (log) {
125
+ const ctx = new context_1.AccountContext(chainId, config.address, undefined, log);
126
+ // let event: Event = <Event>deepCopy(log);
127
+ const event = log;
128
+ const parsed = ERC20_CONTRACT.interface.parseLog(log);
129
+ if (parsed) {
130
+ event.args = parsed.args;
131
+ event.decode = (data, topics) => {
132
+ return ERC20_CONTRACT.interface.decodeEventLog(parsed.eventFragment, data, topics);
133
+ };
134
+ event.event = parsed.name;
135
+ event.eventSignature = parsed.signature;
136
+ // TODO fix this bug
137
+ await handler(event, ctx);
138
+ return ctx.getProcessResult();
139
+ }
140
+ return sdk_1.ProcessResult.fromPartial({});
141
+ },
142
+ });
143
+ return this;
144
+ }
145
+ }
146
+ exports.AccountProcessor = AccountProcessor;
147
+ //# sourceMappingURL=account-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-processor.js","sourceRoot":"","sources":["../../src/core/account-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { ListStateStorage } from '../state/state-storage'\nimport { ERC20__factory, ERC721__factory } from '../builtin/internal'\nimport { AddressType, DummyProvider, ProcessResult } from '@sentio/sdk'\nimport { AccountBindOptions } from './bind-options'\nimport { getNetwork } from '@ethersproject/providers'\nimport { TransferEvent as ERC20TransferEvent } from '../builtin/internal/ERC20'\nimport { TransferEvent as ERC721TransferEvent } from '../builtin/internal/ERC721'\nimport { AccountContext } from './context'\nimport { PromiseOrVoid } from '../promise-or-void'\nimport { Event } from '@ethersproject/contracts'\nimport { BytesLike } from '@ethersproject/bytes'\nimport { AddressOrTypeEventFilter, EventsHandler } from './base-processor'\n\nexport class AccountProcessorState extends ListStateStorage<AccountProcessor> {\n static INSTANCE = new AccountProcessorState()\n}\n\nconst ERC20_CONTRACT = ERC20__factory.connect('', DummyProvider)\nconst ERC721_CONTRACT = ERC721__factory.connect('', DummyProvider)\n\nexport class AccountProcessor {\n config: AccountBindOptions\n eventHandlers: EventsHandler[] = []\n\n static bind(config: AccountBindOptions): AccountProcessor {\n const processor = new AccountProcessor(config)\n AccountProcessorState.INSTANCE.addValue(processor)\n return processor\n }\n\n protected constructor(config: AccountBindOptions) {\n this.config = config\n }\n\n public getChainId(): number {\n return getNetwork(this.config.network || 1).chainId\n }\n\n /**\n * Register custom handler function to process erc20 transfer event to this account\n * @param handler custom handler function\n * @param tokensAddresses all the erc20 token address to watch\n */\n onERC20TransferIn(\n handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n tokensAddresses: string[] = []\n ) {\n return this.onERC20(handler, tokensAddresses, (address: string) =>\n ERC20_CONTRACT.filters.Transfer(null, this.config.address)\n )\n }\n\n /**\n * Register custom handler function to process erc20 transfer event from this account\n * @param handler custom handler function\n * @param tokensAddresses all the erc20 token address to watch\n */\n onERC20TransferOut(\n handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n tokensAddresses: string[] = []\n ) {\n return this.onERC20(handler, tokensAddresses, (address: string) =>\n ERC20_CONTRACT.filters.Transfer(this.config.address)\n )\n }\n\n /**\n * Register custom handler function to process erc20 mint for this account\n * @param handler custom handler function\n * @param tokensAddresses all the erc20 token address to watch\n */\n onERC20Minted(\n handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n tokensAddresses: string[] = []\n ) {\n return this.onERC20(handler, tokensAddresses, (address: string) =>\n ERC20_CONTRACT.filters.Transfer('0x0000000000000000000000000000000000000000', this.config.address)\n )\n }\n\n private onERC20(\n handler: (event: ERC20TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n tokensAddresses: string[] = [],\n defaultFilter: (address: string) => AddressOrTypeEventFilter\n ) {\n return this.onERC(handler, tokensAddresses, defaultFilter, AddressType.ERC20)\n }\n\n /**\n * Register custom handler function to process ERC721 transfer event to this account\n * @param handler custom handler function\n * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721\n */\n onERC721TransferIn(\n handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n collections: string[]\n ) {\n return this.onERC721(handler, collections, (address: string) =>\n ERC721_CONTRACT.filters.Transfer(null, this.config.address)\n )\n }\n\n /**\n * Register custom handler function to process ERC721 transfer event from this account\n * @param handler custom handler function\n * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721\n */\n onERC721TransferOut(\n handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n collections: string[]\n ) {\n return this.onERC721(handler, collections, (address: string) =>\n ERC721_CONTRACT.filters.Transfer(this.config.address)\n )\n }\n\n /**\n * Register custom handler function to process ERC721 mint for this account\n * @param handler custom handler function\n * @param collections all the ERC721 token address to watch, if not provided then watch all ERC721\n */\n onERC721Minted(\n handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n collections: string[] = []\n ) {\n return this.onERC721(handler, collections, (address: string) =>\n ERC721_CONTRACT.filters.Transfer('0x0000000000000000000000000000000000000000', this.config.address)\n )\n }\n\n private onERC721(\n handler: (event: ERC721TransferEvent, ctx: AccountContext) => PromiseOrVoid,\n collections: string[],\n defaultFilter: (address: string) => AddressOrTypeEventFilter\n ) {\n return this.onERC(handler, collections, defaultFilter, AddressType.ERC721)\n }\n\n private onERC(\n handler: (event: any, ctx: AccountContext) => PromiseOrVoid,\n contractAddresses: string[],\n defaultFilter: (address: string) => AddressOrTypeEventFilter,\n addressType: AddressType\n ) {\n const filters = []\n for (const token of contractAddresses) {\n const filter = defaultFilter(this.config.address)\n filter.address = token\n filters.push(filter)\n }\n if (!filters.length) {\n const filter = defaultFilter(this.config.address)\n filter.address = undefined\n filter.addressType = addressType\n filters.push(filter)\n }\n return this.onEvent(handler, filters)\n }\n\n protected onEvent(\n handler: (event: Event, ctx: AccountContext) => PromiseOrVoid,\n filter: AddressOrTypeEventFilter | AddressOrTypeEventFilter[]\n ) {\n const chainId = this.getChainId()\n\n let _filters: AddressOrTypeEventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n let hasVaildConfig = false\n for (const filter of _filters) {\n if (filter.address) {\n hasVaildConfig = true\n break\n }\n if (filter.topics && filter.topics.length) {\n hasVaildConfig = true\n break\n }\n }\n\n if (!hasVaildConfig) {\n throw Error('no valid config has been found for this account')\n }\n\n const config = this.config\n\n this.eventHandlers.push({\n filters: _filters,\n handler: async function (log) {\n const ctx = new AccountContext(chainId, config.address, undefined, log)\n // let event: Event = <Event>deepCopy(log);\n const event: Event = <Event>log\n const parsed = ERC20_CONTRACT.interface.parseLog(log)\n if (parsed) {\n event.args = parsed.args\n event.decode = (data: BytesLike, topics?: Array<any>) => {\n return ERC20_CONTRACT.interface.decodeEventLog(parsed.eventFragment, data, topics)\n }\n event.event = parsed.name\n event.eventSignature = parsed.signature\n\n // TODO fix this bug\n await handler(event, ctx)\n return ctx.getProcessResult()\n }\n return ProcessResult.fromPartial({})\n },\n })\n\n return this\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { ProcessResult, RecordMetaData } from '../gen';
2
+ import { Logger } from './logger';
3
+ import { Labels } from './metadata';
4
+ import { Meter } from './meter';
5
+ export declare abstract class BaseContext {
6
+ meter: Meter;
7
+ logger: Logger;
8
+ res: ProcessResult;
9
+ protected constructor();
10
+ getProcessResult(): ProcessResult;
11
+ abstract getMetaData(name: string, labels: Labels): RecordMetaData;
12
+ }