@instadapp/interop-x 0.0.0-dev.cbee93c → 0.0.0-dev.cdc0510

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 (330) hide show
  1. package/.github/workflows/ci.yml +19 -0
  2. package/dist/package.json +24 -13
  3. package/dist/src/abi/aaveV2Resolver.json +832 -0
  4. package/dist/src/abi/aaveV3Resolver.json +628 -0
  5. package/dist/src/abi/balanceResolver.json +211 -0
  6. package/dist/src/abi/connectors/index.js +36 -0
  7. package/dist/src/abi/connectors/v1/aave.js +148 -0
  8. package/dist/src/abi/connectors/v1/aave_claim.js +4 -0
  9. package/dist/src/abi/connectors/v1/aave_migrate.js +109 -0
  10. package/dist/src/abi/connectors/v1/aave_polygon_migrate.js +110 -0
  11. package/dist/src/abi/connectors/v1/aave_stake.js +4 -0
  12. package/dist/src/abi/connectors/v1/aave_v1_import.js +54 -0
  13. package/dist/src/abi/connectors/v1/aave_v2.js +230 -0
  14. package/dist/src/abi/connectors/v1/aave_v2_import.js +59 -0
  15. package/dist/src/abi/connectors/v1/authority.js +100 -0
  16. package/dist/src/abi/connectors/v1/basic.js +136 -0
  17. package/dist/src/abi/connectors/v1/chi.js +36 -0
  18. package/dist/src/abi/connectors/v1/comp.js +4 -0
  19. package/dist/src/abi/connectors/v1/compound.js +4 -0
  20. package/dist/src/abi/connectors/v1/compoundImport.js +69 -0
  21. package/dist/src/abi/connectors/v1/compoundImport_v2.js +4 -0
  22. package/dist/src/abi/connectors/v1/compound_old.js +448 -0
  23. package/dist/src/abi/connectors/v1/curve.js +140 -0
  24. package/dist/src/abi/connectors/v1/curve_claim.js +63 -0
  25. package/dist/src/abi/connectors/v1/curve_gauge.js +158 -0
  26. package/dist/src/abi/connectors/v1/curve_sbtc.js +140 -0
  27. package/dist/src/abi/connectors/v1/curve_susd.js +140 -0
  28. package/dist/src/abi/connectors/v1/curve_three.js +79 -0
  29. package/dist/src/abi/connectors/v1/curve_y.js +140 -0
  30. package/dist/src/abi/connectors/v1/dsa_migrate_v1_to_v2.js +4 -0
  31. package/dist/src/abi/connectors/v1/dydx.js +148 -0
  32. package/dist/src/abi/connectors/v1/dydx_flash.js +52 -0
  33. package/dist/src/abi/connectors/v1/fee.js +50 -0
  34. package/dist/src/abi/connectors/v1/gelato.js +1138 -0
  35. package/dist/src/abi/connectors/v1/index.js +58 -0
  36. package/dist/src/abi/connectors/v1/instapool.js +439 -0
  37. package/dist/src/abi/connectors/v1/instapool_v2.js +126 -0
  38. package/dist/src/abi/connectors/v1/kyber.js +117 -0
  39. package/dist/src/abi/connectors/v1/maker.js +480 -0
  40. package/dist/src/abi/connectors/v1/maker_old.js +300 -0
  41. package/dist/src/abi/connectors/v1/math.js +43 -0
  42. package/dist/src/abi/connectors/v1/migrate.js +46 -0
  43. package/dist/src/abi/connectors/v1/oasis.js +198 -0
  44. package/dist/src/abi/connectors/v1/oneInch.js +160 -0
  45. package/dist/src/abi/connectors/v1/polygon_bridge.js +4 -0
  46. package/dist/src/abi/connectors/v1/refinance.js +4 -0
  47. package/dist/src/abi/connectors/v1/staking.js +220 -0
  48. package/dist/src/abi/connectors/v1/swerve.js +179 -0
  49. package/dist/src/abi/connectors/v1/uniswap.js +297 -0
  50. package/dist/src/abi/connectors/v2/1INCH-A.js +4 -0
  51. package/dist/src/abi/connectors/v2/1INCH-B.js +4 -0
  52. package/dist/src/abi/connectors/v2/AAVE-CLAIM-A.js +4 -0
  53. package/dist/src/abi/connectors/v2/AAVE-CLAIM-B.js +166 -0
  54. package/dist/src/abi/connectors/v2/AAVE-STAKE-A.js +4 -0
  55. package/dist/src/abi/connectors/v2/AAVE-V1-A.js +130 -0
  56. package/dist/src/abi/connectors/v2/AAVE-V1-IMPORT-A.js +4 -0
  57. package/dist/src/abi/connectors/v2/AAVE-V2-A.js +230 -0
  58. package/dist/src/abi/connectors/v2/AAVE-V2-IMPORT-A.js +4 -0
  59. package/dist/src/abi/connectors/v2/AAVE-V2-IMPORT-B.js +225 -0
  60. package/dist/src/abi/connectors/v2/AUTHORITY-A.js +100 -0
  61. package/dist/src/abi/connectors/v2/B-COMPOUND-A.js +4 -0
  62. package/dist/src/abi/connectors/v2/B-LIQUITY-A.js +4 -0
  63. package/dist/src/abi/connectors/v2/B-MAKERDAO-A.js +4 -0
  64. package/dist/src/abi/connectors/v2/BASIC-A.js +136 -0
  65. package/dist/src/abi/connectors/v2/BASIC-B.js +4 -0
  66. package/dist/src/abi/connectors/v2/BASIC-C.js +4 -0
  67. package/dist/src/abi/connectors/v2/COMP-A.js +4 -0
  68. package/dist/src/abi/connectors/v2/COMPOUND-A.js +4 -0
  69. package/dist/src/abi/connectors/v2/COMPOUND-IMPORT-A.js +4 -0
  70. package/dist/src/abi/connectors/v2/COMPOUND-IMPORT-B.js +195 -0
  71. package/dist/src/abi/connectors/v2/G-UNISWAP-A.js +4 -0
  72. package/dist/src/abi/connectors/v2/GELATO-AAVE-A.js +4 -0
  73. package/dist/src/abi/connectors/v2/INST-A.js +4 -0
  74. package/dist/src/abi/connectors/v2/INST-LM-A.js +4 -0
  75. package/dist/src/abi/connectors/v2/INST-STAKING-A.js +4 -0
  76. package/dist/src/abi/connectors/v2/INST-STAKING-B.js +4 -0
  77. package/dist/src/abi/connectors/v2/INSTAPOOL-A.js +4 -0
  78. package/dist/src/abi/connectors/v2/LIQUITY-A.js +4 -0
  79. package/dist/src/abi/connectors/v2/MAKERDAO-A.js +4 -0
  80. package/dist/src/abi/connectors/v2/MAKERDAO-CLAIM-A.js +136 -0
  81. package/dist/src/abi/connectors/v2/PARASWAP-A.js +4 -0
  82. package/dist/src/abi/connectors/v2/POLYGON-BRIDGE-A.js +4 -0
  83. package/dist/src/abi/connectors/v2/REFINANCE-A.js +4 -0
  84. package/dist/src/abi/connectors/v2/REFLEXER-A.js +4 -0
  85. package/dist/src/abi/connectors/v2/STAKE-ERC20-A.js +4 -0
  86. package/dist/src/abi/connectors/v2/UNISWAP-A.js +297 -0
  87. package/dist/src/abi/connectors/v2/UNISWAP-V2-A.js +4 -0
  88. package/dist/src/abi/connectors/v2/UNISWAP-V3-A.js +4 -0
  89. package/dist/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.js +4 -0
  90. package/dist/src/abi/connectors/v2/WETH-A.js +4 -0
  91. package/dist/src/abi/connectors/v2/YEARN-VAULT-A.js +4 -0
  92. package/dist/src/abi/connectors/v2/index.js +89 -0
  93. package/dist/src/abi/index.js +12 -4
  94. package/dist/src/abi/instList.json +232 -0
  95. package/dist/src/abi/interopX.json +1436 -0
  96. package/dist/src/alias.js +10 -0
  97. package/dist/src/api/index.js +10 -0
  98. package/dist/src/config/index.js +10 -1
  99. package/dist/src/constants/addresses.js +12 -7
  100. package/dist/src/constants/blockConfirmations.js +8 -0
  101. package/dist/src/constants/capPerChain.js +8 -0
  102. package/dist/src/constants/index.js +3 -1
  103. package/dist/src/constants/tokens.js +30 -7
  104. package/dist/src/constants/wrappedNativeToken.js +8 -0
  105. package/dist/src/crons/index.js +3 -0
  106. package/dist/src/crons/prices.js +16 -0
  107. package/dist/src/db/models/transaction.js +41 -15
  108. package/dist/src/errors/index.js +30 -0
  109. package/dist/src/gnosis/actions/aaveV2/index.js +11 -0
  110. package/dist/src/gnosis/actions/aaveV2/source.js +74 -0
  111. package/dist/src/gnosis/actions/aaveV2/target.js +87 -0
  112. package/dist/src/gnosis/actions/aaveV3/index.js +11 -0
  113. package/dist/src/gnosis/actions/aaveV3/source.js +74 -0
  114. package/dist/src/gnosis/actions/aaveV3/target.js +87 -0
  115. package/dist/src/gnosis/actions/index.js +11 -0
  116. package/dist/src/gnosis/index.js +20 -0
  117. package/dist/src/index.js +35 -22
  118. package/dist/src/net/protocol/dial/SignatureDialProtocol.js +9 -10
  119. package/dist/src/net/protocol/dial/{SignatureDialProtocol.1.js → TransactionStatusDialProtocol.js} +2 -0
  120. package/dist/src/net/protocol/index.js +17 -7
  121. package/dist/src/providers/index.js +17 -0
  122. package/dist/src/providers/retry-provider.js +45 -0
  123. package/dist/src/services/Prices.js +74 -0
  124. package/dist/src/services/index.js +8 -0
  125. package/dist/src/tasks/AutoUpdateTask.js +6 -2
  126. package/dist/src/tasks/BaseTask.js +4 -0
  127. package/dist/src/tasks/InteropX/ProcessSubmitEvents.js +271 -0
  128. package/dist/src/tasks/InteropX/ProcessValidateEvents.js +203 -0
  129. package/dist/src/tasks/InteropX/SyncLogExecuteEvents.js +113 -0
  130. package/dist/src/tasks/InteropX/SyncLogSubmitEvents.js +88 -0
  131. package/dist/src/tasks/InteropX/SyncLogValidateEvents.js +106 -0
  132. package/dist/src/tasks/Transactions/SyncTransactionStatusTask.js +8 -3
  133. package/dist/src/tasks/index.js +20 -19
  134. package/dist/src/typechain/{InteropBridgeToken.js → AaveV2Resolver.js} +0 -0
  135. package/dist/src/typechain/{InteropXGateway.js → AaveV3Resolver.js} +0 -0
  136. package/dist/src/typechain/BalanceResolver.js +2 -0
  137. package/dist/src/typechain/InstList.js +2 -0
  138. package/dist/src/typechain/InteropX.js +2 -0
  139. package/dist/src/typechain/factories/AaveV2Resolver__factory.js +1191 -0
  140. package/dist/src/typechain/factories/AaveV3Resolver__factory.js +887 -0
  141. package/dist/src/typechain/factories/BalanceResolver__factory.js +228 -0
  142. package/dist/src/typechain/factories/InstList__factory.js +249 -0
  143. package/dist/src/typechain/factories/InteropX__factory.js +1928 -0
  144. package/dist/src/typechain/factories/index.js +11 -5
  145. package/dist/src/typechain/index.js +11 -5
  146. package/dist/src/utils/async.js +18 -0
  147. package/dist/src/utils/dsa.js +24 -0
  148. package/dist/src/utils/formatting.js +67 -0
  149. package/dist/src/utils/gnosis.js +87 -0
  150. package/dist/src/utils/http.js +10 -0
  151. package/dist/src/utils/index.js +22 -235
  152. package/dist/src/utils/interop.js +16 -0
  153. package/dist/src/utils/tokens.js +22 -0
  154. package/dist/src/utils/validate.js +111 -0
  155. package/dist/src/utils/web3.js +93 -0
  156. package/package.json +24 -13
  157. package/src/abi/aaveV2Resolver.json +832 -0
  158. package/src/abi/aaveV3Resolver.json +628 -0
  159. package/src/abi/balanceResolver.json +211 -0
  160. package/src/abi/connectors/index.ts +14 -0
  161. package/src/abi/connectors/v1/aave.ts +147 -0
  162. package/src/abi/connectors/v1/aave_claim.ts +3 -0
  163. package/src/abi/connectors/v1/aave_migrate.ts +108 -0
  164. package/src/abi/connectors/v1/aave_polygon_migrate.ts +109 -0
  165. package/src/abi/connectors/v1/aave_stake.ts +3 -0
  166. package/src/abi/connectors/v1/aave_v1_import.ts +53 -0
  167. package/src/abi/connectors/v1/aave_v2.ts +229 -0
  168. package/src/abi/connectors/v1/aave_v2_import.ts +58 -0
  169. package/src/abi/connectors/v1/authority.ts +99 -0
  170. package/src/abi/connectors/v1/basic.ts +135 -0
  171. package/src/abi/connectors/v1/chi.ts +35 -0
  172. package/src/abi/connectors/v1/comp.ts +3 -0
  173. package/src/abi/connectors/v1/compound.ts +3 -0
  174. package/src/abi/connectors/v1/compoundImport.ts +68 -0
  175. package/src/abi/connectors/v1/compoundImport_v2.ts +3 -0
  176. package/src/abi/connectors/v1/compound_old.ts +447 -0
  177. package/src/abi/connectors/v1/curve.ts +139 -0
  178. package/src/abi/connectors/v1/curve_claim.ts +62 -0
  179. package/src/abi/connectors/v1/curve_gauge.ts +157 -0
  180. package/src/abi/connectors/v1/curve_sbtc.ts +139 -0
  181. package/src/abi/connectors/v1/curve_susd.ts +139 -0
  182. package/src/abi/connectors/v1/curve_three.ts +78 -0
  183. package/src/abi/connectors/v1/curve_y.ts +139 -0
  184. package/src/abi/connectors/v1/dsa_migrate_v1_to_v2.ts +3 -0
  185. package/src/abi/connectors/v1/dydx.ts +147 -0
  186. package/src/abi/connectors/v1/dydx_flash.ts +51 -0
  187. package/src/abi/connectors/v1/fee.ts +49 -0
  188. package/src/abi/connectors/v1/gelato.ts +1137 -0
  189. package/src/abi/connectors/v1/index.ts +42 -0
  190. package/src/abi/connectors/v1/instapool.ts +438 -0
  191. package/src/abi/connectors/v1/instapool_v2.ts +125 -0
  192. package/src/abi/connectors/v1/kyber.ts +116 -0
  193. package/src/abi/connectors/v1/maker.ts +479 -0
  194. package/src/abi/connectors/v1/maker_old.ts +299 -0
  195. package/src/abi/connectors/v1/math.ts +42 -0
  196. package/src/abi/connectors/v1/migrate.ts +45 -0
  197. package/src/abi/connectors/v1/oasis.ts +197 -0
  198. package/src/abi/connectors/v1/oneInch.ts +159 -0
  199. package/src/abi/connectors/v1/polygon_bridge.ts +3 -0
  200. package/src/abi/connectors/v1/refinance.ts +3 -0
  201. package/src/abi/connectors/v1/staking.ts +219 -0
  202. package/src/abi/connectors/v1/swerve.ts +178 -0
  203. package/src/abi/connectors/v1/uniswap.ts +297 -0
  204. package/src/abi/connectors/v2/1INCH-A.ts +3 -0
  205. package/src/abi/connectors/v2/1INCH-B.ts +3 -0
  206. package/src/abi/connectors/v2/AAVE-CLAIM-A.ts +3 -0
  207. package/src/abi/connectors/v2/AAVE-CLAIM-B.ts +165 -0
  208. package/src/abi/connectors/v2/AAVE-STAKE-A.ts +3 -0
  209. package/src/abi/connectors/v2/AAVE-V1-A.ts +130 -0
  210. package/src/abi/connectors/v2/AAVE-V1-IMPORT-A.ts +3 -0
  211. package/src/abi/connectors/v2/AAVE-V2-A.ts +229 -0
  212. package/src/abi/connectors/v2/AAVE-V2-IMPORT-A.ts +3 -0
  213. package/src/abi/connectors/v2/AAVE-V2-IMPORT-B.ts +224 -0
  214. package/src/abi/connectors/v2/AUTHORITY-A.ts +99 -0
  215. package/src/abi/connectors/v2/B-COMPOUND-A.ts +3 -0
  216. package/src/abi/connectors/v2/B-LIQUITY-A.ts +3 -0
  217. package/src/abi/connectors/v2/B-MAKERDAO-A.ts +3 -0
  218. package/src/abi/connectors/v2/BASIC-A.ts +135 -0
  219. package/src/abi/connectors/v2/BASIC-B.ts +3 -0
  220. package/src/abi/connectors/v2/BASIC-C.ts +3 -0
  221. package/src/abi/connectors/v2/COMP-A.ts +3 -0
  222. package/src/abi/connectors/v2/COMPOUND-A.ts +3 -0
  223. package/src/abi/connectors/v2/COMPOUND-IMPORT-A.ts +3 -0
  224. package/src/abi/connectors/v2/COMPOUND-IMPORT-B.ts +194 -0
  225. package/src/abi/connectors/v2/G-UNISWAP-A.ts +3 -0
  226. package/src/abi/connectors/v2/GELATO-AAVE-A.ts +3 -0
  227. package/src/abi/connectors/v2/INST-A.ts +3 -0
  228. package/src/abi/connectors/v2/INST-LM-A.ts +3 -0
  229. package/src/abi/connectors/v2/INST-STAKING-A.ts +3 -0
  230. package/src/abi/connectors/v2/INST-STAKING-B.ts +3 -0
  231. package/src/abi/connectors/v2/INSTAPOOL-A.ts +3 -0
  232. package/src/abi/connectors/v2/LIQUITY-A.ts +3 -0
  233. package/src/abi/connectors/v2/MAKERDAO-A.ts +3 -0
  234. package/src/abi/connectors/v2/MAKERDAO-CLAIM-A.ts +135 -0
  235. package/src/abi/connectors/v2/PARASWAP-A.ts +3 -0
  236. package/src/abi/connectors/v2/POLYGON-BRIDGE-A.ts +3 -0
  237. package/src/abi/connectors/v2/REFINANCE-A.ts +3 -0
  238. package/src/abi/connectors/v2/REFLEXER-A.ts +3 -0
  239. package/src/abi/connectors/v2/STAKE-ERC20-A.ts +3 -0
  240. package/src/abi/connectors/v2/UNISWAP-A.ts +297 -0
  241. package/src/abi/connectors/v2/UNISWAP-V2-A.ts +3 -0
  242. package/src/abi/connectors/v2/UNISWAP-V3-A.ts +3 -0
  243. package/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.ts +3 -0
  244. package/src/abi/connectors/v2/WETH-A.ts +3 -0
  245. package/src/abi/connectors/v2/YEARN-VAULT-A.ts +3 -0
  246. package/src/abi/connectors/v2/index.ts +87 -0
  247. package/src/abi/index.ts +15 -7
  248. package/src/abi/instList.json +232 -0
  249. package/src/abi/interopX.json +1436 -0
  250. package/src/alias.ts +6 -0
  251. package/src/api/index.ts +11 -0
  252. package/src/config/index.ts +9 -1
  253. package/src/constants/addresses.ts +23 -8
  254. package/src/constants/blockConfirmations.ts +5 -0
  255. package/src/constants/capPerChain.ts +5 -0
  256. package/src/constants/index.ts +3 -1
  257. package/src/constants/tokens.ts +31 -8
  258. package/src/constants/wrappedNativeToken.ts +5 -0
  259. package/src/crons/index.ts +1 -0
  260. package/src/crons/prices.ts +12 -0
  261. package/src/db/models/transaction.ts +159 -65
  262. package/src/errors/index.ts +26 -0
  263. package/src/gnosis/actions/aaveV2/index.ts +9 -0
  264. package/src/gnosis/actions/aaveV2/source.ts +119 -0
  265. package/src/gnosis/actions/aaveV2/target.ts +142 -0
  266. package/src/gnosis/actions/aaveV3/index.ts +9 -0
  267. package/src/gnosis/actions/aaveV3/source.ts +119 -0
  268. package/src/gnosis/actions/aaveV3/target.ts +142 -0
  269. package/src/gnosis/actions/index.ts +7 -0
  270. package/src/gnosis/index.ts +19 -0
  271. package/src/index.ts +48 -26
  272. package/src/net/protocol/dial/SignatureDialProtocol.ts +12 -13
  273. package/src/net/protocol/dial/{SignatureDialProtocol.1.ts → TransactionStatusDialProtocol.ts} +3 -1
  274. package/src/net/protocol/index.ts +17 -7
  275. package/src/providers/index.ts +1 -0
  276. package/src/providers/retry-provider.ts +51 -0
  277. package/src/services/Prices.ts +89 -0
  278. package/src/services/index.ts +1 -0
  279. package/src/tasks/AutoUpdateTask.ts +12 -9
  280. package/src/tasks/BaseTask.ts +5 -0
  281. package/src/tasks/InteropX/ProcessSubmitEvents.ts +382 -0
  282. package/src/tasks/InteropX/ProcessValidateEvents.ts +297 -0
  283. package/src/tasks/InteropX/SyncLogExecuteEvents.ts +161 -0
  284. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +138 -0
  285. package/src/tasks/InteropX/SyncLogValidateEvents.ts +151 -0
  286. package/src/tasks/Transactions/SyncTransactionStatusTask.ts +8 -3
  287. package/src/tasks/index.ts +25 -20
  288. package/src/typechain/AaveV2Resolver.ts +1017 -0
  289. package/src/typechain/AaveV3Resolver.ts +935 -0
  290. package/src/typechain/BalanceResolver.ts +266 -0
  291. package/src/typechain/InstList.ts +402 -0
  292. package/src/typechain/InteropX.ts +1216 -0
  293. package/src/typechain/factories/AaveV2Resolver__factory.ts +1198 -0
  294. package/src/typechain/factories/AaveV3Resolver__factory.ts +894 -0
  295. package/src/typechain/factories/BalanceResolver__factory.ts +235 -0
  296. package/src/typechain/factories/InstList__factory.ts +253 -0
  297. package/src/typechain/factories/InteropX__factory.ts +1932 -0
  298. package/src/typechain/factories/index.ts +5 -2
  299. package/src/typechain/index.ts +10 -4
  300. package/src/utils/async.ts +22 -0
  301. package/src/utils/dsa.ts +30 -0
  302. package/src/utils/formatting.ts +68 -0
  303. package/src/utils/gnosis.ts +166 -0
  304. package/src/utils/http.ts +6 -0
  305. package/src/utils/index.ts +9 -319
  306. package/src/utils/interop.ts +28 -0
  307. package/src/utils/tokens.ts +21 -0
  308. package/src/utils/validate.ts +174 -0
  309. package/src/utils/web3.ts +132 -0
  310. package/tsconfig.json +7 -2
  311. package/dist/src/abi/interopBridgeToken.json +0 -286
  312. package/dist/src/abi/interopXGateway.json +0 -184
  313. package/dist/src/constants/itokens.js +0 -13
  314. package/dist/src/tasks/InteropBridge/ProcessWithdrawEvents.js +0 -146
  315. package/dist/src/tasks/InteropBridge/SyncWithdrawEvents.js +0 -69
  316. package/dist/src/tasks/InteropXGateway/ProcessDepositEvents.js +0 -149
  317. package/dist/src/tasks/InteropXGateway/SyncDepositEvents.js +0 -74
  318. package/dist/src/typechain/factories/InteropBridgeToken__factory.js +0 -459
  319. package/dist/src/typechain/factories/InteropXGateway__factory.js +0 -265
  320. package/src/abi/interopBridgeToken.json +0 -286
  321. package/src/abi/interopXGateway.json +0 -184
  322. package/src/constants/itokens.ts +0 -10
  323. package/src/tasks/InteropBridge/ProcessWithdrawEvents.ts +0 -231
  324. package/src/tasks/InteropBridge/SyncWithdrawEvents.ts +0 -119
  325. package/src/tasks/InteropXGateway/ProcessDepositEvents.ts +0 -243
  326. package/src/tasks/InteropXGateway/SyncDepositEvents.ts +0 -124
  327. package/src/typechain/InteropBridgeToken.ts +0 -686
  328. package/src/typechain/InteropXGateway.ts +0 -407
  329. package/src/typechain/factories/InteropBridgeToken__factory.ts +0 -466
  330. package/src/typechain/factories/InteropXGateway__factory.ts +0 -272
@@ -2,15 +2,17 @@ import { BaseDialProtocol } from "./BaseDialProtocol";
2
2
  import wait from "waait";
3
3
  import config from "@/config";
4
4
  import { Transaction } from "@/db";
5
- import { buildDataForTransaction, signGnosisSafeTx } from "@/utils";
5
+ import { signGnosisSafeTx } from "@/utils";
6
6
  import { addresses } from "@/constants";
7
7
  import { ChainId } from "@/types";
8
+ import { buildGnosisAction } from "@/gnosis";
8
9
 
9
10
  export interface ISignatureRequest {
10
- type: 'source' | 'target' ,
11
+ type: 'source' | 'target',
11
12
  transactionHash: string
12
13
  safeTxGas: string
13
14
  safeNonce: string
15
+ chainId: number
14
16
  }
15
17
  export interface ISignatureResponse {
16
18
  signer: string,
@@ -25,6 +27,10 @@ export class SignatureDialProtocol extends BaseDialProtocol<ISignatureRequest, I
25
27
  }
26
28
 
27
29
  async response(data: ISignatureRequest): Promise<ISignatureResponse> {
30
+ console.log({
31
+ tag: 'SignatureDialProtocol',
32
+ data
33
+ })
28
34
  const signer = config.wallet;
29
35
 
30
36
  let transaction: Transaction | null;
@@ -46,19 +52,12 @@ export class SignatureDialProtocol extends BaseDialProtocol<ISignatureRequest, I
46
52
  error: 'Event not found'
47
53
  };
48
54
  }
49
-
50
- console.log("signing:", {
51
- to: addresses[transaction.targetChainId].multisend,
52
- data: await buildDataForTransaction(transaction, data.type),
53
- chainId: transaction.targetChainId as ChainId,
54
- safeTxGas: data.safeTxGas,
55
- nonce: data.safeNonce,
56
- });
55
+ const { data: gnosisData } = await buildGnosisAction(transaction, data.type);
57
56
 
58
57
  const signedData = await signGnosisSafeTx({
59
- to: addresses[transaction.targetChainId].multisend,
60
- data: await buildDataForTransaction(transaction, data.type),
61
- chainId: transaction.targetChainId as ChainId,
58
+ to: addresses[data.chainId].multisend,
59
+ data: gnosisData,
60
+ chainId: data.chainId as ChainId,
62
61
  safeTxGas: data.safeTxGas,
63
62
  nonce: data.safeNonce,
64
63
  }, { signer });
@@ -1,7 +1,7 @@
1
1
  import { BaseDialProtocol } from "./BaseDialProtocol";
2
2
  import { Transaction } from "@/db";
3
3
 
4
- export class TransactionStatusDialProtocol extends BaseDialProtocol<string, Pick<Transaction, 'transactionHash' | 'sourceStatus' | 'sourceTransactionHash' | 'sourceErrors' | 'targetStatus' | 'targetTransactionHash' | 'targetErrors' | 'status'> | null> {
4
+ export class TransactionStatusDialProtocol extends BaseDialProtocol<string, Pick<Transaction, 'transactionHash' | 'sourceStatus' | 'sourceTransactionHash' | 'sourceErrors' | 'sourceLogs' | 'targetStatus' | 'targetTransactionHash' | 'targetErrors' | 'targetLogs' | 'status'> | null> {
5
5
  protected timeout = 30000;
6
6
 
7
7
  constructor(libp2p) {
@@ -20,10 +20,12 @@ export class TransactionStatusDialProtocol extends BaseDialProtocol<string, Pick
20
20
  sourceStatus: transaction.sourceStatus,
21
21
  sourceTransactionHash: transaction.sourceTransactionHash,
22
22
  sourceErrors: transaction.sourceErrors,
23
+ sourceLogs: transaction.sourceLogs,
23
24
 
24
25
  targetStatus: transaction.targetStatus,
25
26
  targetTransactionHash: transaction.targetTransactionHash,
26
27
  targetErrors: transaction.targetErrors,
28
+ targetLogs: transaction.targetLogs,
27
29
 
28
30
  status: transaction.status,
29
31
  }
@@ -6,7 +6,7 @@ import { IPeerInfo, peerPool } from "..";
6
6
  import config from "@/config";
7
7
  import { Event } from "@/types";
8
8
  import { Transaction } from "@/db";
9
- import { TransactionStatusDialProtocol } from "./dial/SignatureDialProtocol.1";
9
+ import { TransactionStatusDialProtocol } from "./dial/TransactionStatusDialProtocol";
10
10
 
11
11
  export interface ProtocolOptions {
12
12
  /* Handshake timeout in ms (default: 8000) */
@@ -36,7 +36,7 @@ interface PeerInfoEvent extends BaseMessageEvent {
36
36
  }
37
37
 
38
38
  interface TransactionStatusEvent extends BaseMessageEvent {
39
- data: Pick<Transaction, 'transactionHash' | 'sourceStatus' | 'sourceTransactionHash' | 'sourceErrors' | 'targetStatus' | 'targetTransactionHash' | 'targetErrors' | 'status'>
39
+ data: Pick<Transaction, 'transactionHash' | 'sourceStatus' | 'sourceTransactionHash' | 'sourceErrors' | 'sourceLogs' | 'targetStatus' | 'targetTransactionHash' | 'targetErrors' | 'targetLogs' | 'status'>
40
40
  }
41
41
 
42
42
  declare interface Protocol {
@@ -66,25 +66,35 @@ class Protocol extends EventEmitter {
66
66
  Buffer.from(transaction.transactionHash),
67
67
 
68
68
  Buffer.from(transaction.sourceStatus),
69
- Buffer.from(transaction.sourceTransactionHash),
69
+ Buffer.from(transaction.sourceTransactionHash || ''),
70
70
  transaction.sourceErrors ? transaction.sourceErrors.map((e) => Buffer.from(e)) : [],
71
+ transaction.sourceLogs ? transaction.sourceLogs.map((e) => [Buffer.from(e.type), Buffer.from(e.message)]) : [],
71
72
 
72
73
  Buffer.from(transaction.targetStatus),
73
- Buffer.from(transaction.targetTransactionHash),
74
+ Buffer.from(transaction.targetTransactionHash || ''),
74
75
  transaction.targetErrors ? transaction.targetErrors.map((e) => Buffer.from(e)) : [],
76
+ transaction.targetLogs ? transaction.targetLogs.map((e) => [Buffer.from(e.type), Buffer.from(e.message)]) : [],
75
77
 
76
78
  Buffer.from(transaction.status),
77
79
  ],
78
- decode: ([transactionHash, sourceStatus, sourceTransactionHash, sourceErrors, targetStatus, targetTransactionHash, targetErrors, status]: [Buffer, Buffer, Buffer, Buffer[], Buffer, Buffer, Buffer[], Buffer]) => ({
80
+ decode: ([transactionHash, sourceStatus, sourceTransactionHash, sourceErrors, sourceLogs, targetStatus, targetTransactionHash, targetErrors, targetLogs, status]: [Buffer, Buffer, Buffer, Buffer[],[Buffer,Buffer][], Buffer, Buffer, Buffer[],[Buffer,Buffer][], Buffer]) => ({
79
81
  transactionHash: transactionHash.toString(),
80
82
 
81
83
  sourceStatus: sourceStatus.toString(),
82
- sourceTransactionHash: sourceTransactionHash.toString(),
84
+ sourceTransactionHash: sourceTransactionHash.toString() || null,
83
85
  sourceErrors: sourceErrors.map((e) => e.toString()),
86
+ sourceLogs: sourceLogs.map(e => ({
87
+ type: e[0].toString(),
88
+ message: e[1].toString(),
89
+ })),
84
90
 
85
91
  targetStatus: targetStatus.toString(),
86
- targetTransactionHash: targetTransactionHash.toString(),
92
+ targetTransactionHash: targetTransactionHash.toString() || null,
87
93
  targetErrors: targetErrors.map((e) => e.toString()),
94
+ targetLogs: targetLogs.map(e => ({
95
+ type: e[0].toString(),
96
+ message: e[1].toString(),
97
+ })),
88
98
 
89
99
  status: status.toString(),
90
100
  }),
@@ -0,0 +1 @@
1
+ export * from './retry-provider';
@@ -0,0 +1,51 @@
1
+ import { ethers } from "ethers";
2
+ import wait from "waait";
3
+ import Bluebird from "bluebird";
4
+
5
+ export interface RetryOptions {
6
+ delay?: number;
7
+ timeouts: number[];
8
+ }
9
+
10
+ export function promiseTimeout<T>(ms: number, promise: Promise<T>): Promise<T> {
11
+ return Bluebird.resolve(promise).timeout(ms);
12
+ }
13
+
14
+ export function retryOperation(
15
+ retriesLeft: number,
16
+ operation: () => Promise<any>,
17
+ options: RetryOptions
18
+ ) {
19
+ return new Promise((resolve, reject) => {
20
+ const { timeouts } = options;
21
+ // Find the timeout for this specific iteration
22
+ const timeout = timeouts[timeouts.length - retriesLeft];
23
+
24
+ // Wrap the original operation in a timeout
25
+ const execution = promiseTimeout(timeout, operation());
26
+
27
+ // If the promise is successful, resolve it and bubble the result up
28
+ return execution.then(resolve).catch((reason: any) => {
29
+ // If there are any retries left, we call the same retryOperation function again,
30
+ // but decrementing the number of retries left by 1
31
+ if (retriesLeft - 1 > 0) {
32
+ // Delay the new attempt slightly
33
+ return wait(options.delay || 50)
34
+ .then(retryOperation.bind(null, retriesLeft - 1, operation, options))
35
+ .then(resolve)
36
+ .catch(reject);
37
+ }
38
+ // Reject (and bubble the result up) if there are no more retries
39
+ return reject(reason);
40
+ });
41
+ });
42
+ }
43
+
44
+ export class JsonRpcRetryProvider extends ethers.providers.JsonRpcProvider {
45
+ public perform(method: string, params: any): Promise<any> {
46
+ const timeouts = [5_000, 10_000];
47
+ const operation = () => super.perform(method, params);
48
+
49
+ return retryOperation(2, operation, { timeouts, delay: 50 });
50
+ }
51
+ }
@@ -0,0 +1,89 @@
1
+ import Web3Utils from "web3-utils";
2
+ import path from "path";
3
+ import fs from "fs";
4
+ import { tokens } from "@/constants";
5
+ import expandHomeDir from "expand-home-dir";
6
+ import config from "@/config";
7
+ import { http } from "@/utils";
8
+
9
+ const basePath = expandHomeDir(`~/.interop-x/data/${config.publicAddress}/${config.staging ? 'staging' : ''}`);
10
+ const mainnetPricesFilePath = path.resolve(basePath, "./mainnetPrices.json");
11
+ const networkTokenPricesFilePath = path.resolve(basePath, "./networkTokenPrices.json");
12
+
13
+ class Prices {
14
+ private static mainnetPrices = {};
15
+
16
+ private static networkTokenPrices = {};
17
+
18
+ static async fetch() {
19
+
20
+ if (!fs.existsSync(mainnetPricesFilePath)) {
21
+ fs.writeFileSync(mainnetPricesFilePath, JSON.stringify({}));
22
+ }
23
+
24
+ if (!fs.existsSync(networkTokenPricesFilePath)) {
25
+ fs.writeFileSync(networkTokenPricesFilePath, JSON.stringify({}));
26
+ }
27
+
28
+ this.mainnetPrices = JSON.parse(fs.readFileSync(mainnetPricesFilePath, "utf8"));
29
+ this.networkTokenPrices = JSON.parse(fs.readFileSync(networkTokenPricesFilePath, "utf8"));
30
+
31
+ try {
32
+ const path = tokens["1"]
33
+ .filter((a) => a.symbol !== "ETH")
34
+ .map((token) => token.address)
35
+ .join(",");
36
+
37
+ const [response, ethResponse, avaxResponse, polygonResponse] =
38
+ await Promise.all([
39
+ http.get(
40
+ "https://api.coingecko.com/api/v3/simple/token_price/ethereum",
41
+ {
42
+ params: { contract_addresses: path, vs_currencies: "usd" },
43
+ }
44
+ ),
45
+ http.get("https://api.coingecko.com/api/v3/simple/price", {
46
+ params: { ids: "ethereum", vs_currencies: "usd" },
47
+ }),
48
+ http.get("https://api.coingecko.com/api/v3/simple/price", {
49
+ params: { ids: "avalanche-2", vs_currencies: "usd" },
50
+ }),
51
+ http.get("https://api.coingecko.com/api/v3/simple/price", {
52
+ params: { ids: "matic-network", vs_currencies: "usd" },
53
+ }),
54
+ ]);
55
+
56
+ this.networkTokenPrices = {
57
+ "1": ethResponse.data.ethereum.usd.toString(),
58
+ "137": polygonResponse.data["matic-network"].usd.toString(),
59
+ "43114": avaxResponse.data["avalanche-2"].usd.toString(),
60
+ };
61
+
62
+ const data = response.data;
63
+
64
+ for (const key in data) {
65
+ const _key = Web3Utils.toChecksumAddress(key);
66
+ if (!data[key].usd) continue;
67
+ this.mainnetPrices[_key] = data[key].usd.toString();
68
+ }
69
+
70
+ this.mainnetPrices["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"] =
71
+ ethResponse.data.ethereum.usd.toString();
72
+ } catch (error) { }
73
+
74
+ fs.writeFileSync(mainnetPricesFilePath, JSON.stringify(this.mainnetPrices));
75
+ fs.writeFileSync(networkTokenPricesFilePath, JSON.stringify(this.networkTokenPrices));
76
+
77
+ return this.mainnetPrices;
78
+ }
79
+
80
+ static getMainnetPrices() {
81
+ return this.mainnetPrices;
82
+ }
83
+
84
+ static getNetworkTokenPrices() {
85
+ return this.networkTokenPrices;
86
+ }
87
+ }
88
+
89
+ export default Prices;
@@ -0,0 +1 @@
1
+ export { default as Prices } from './Prices';
@@ -1,7 +1,7 @@
1
1
  import { BaseTask } from "./BaseTask";
2
2
  import Logger from '@/logger';
3
- import { http } from "@/utils";
4
- import spawn from 'await-spawn';
3
+ import spawnAsync from 'await-spawn';
4
+ import { spawn } from 'child_process'
5
5
  import config from "@/config";
6
6
  import wait from "waait";
7
7
  import packageJson from "../../package.json";
@@ -24,22 +24,20 @@ class AutoUpdateTask extends BaseTask {
24
24
 
25
25
  async getInstalledVersion() {
26
26
  try {
27
- const stdout = await spawn('npm', ['-g', 'ls', '--depth=0', '--json'])
27
+ const stdout = await spawnAsync('npm', ['-g', 'ls', '--depth=0', '--json'])
28
28
  return JSON.parse(stdout.toString()).dependencies[packageJson.name].version
29
29
  } catch (error) {
30
30
  this.logger.error(error)
31
-
32
31
  return currentVersion
33
32
  }
34
33
  }
35
34
 
36
35
  async getLatestVersion() {
37
36
  try {
38
- const stdout = await spawn('npm', ['view', `${packageJson.name}@${tag}`, 'version'])
37
+ const stdout = await spawnAsync('npm', ['view', `${packageJson.name}@${tag}`, 'version'])
39
38
  return stdout.toString().trim()
40
39
  } catch (error) {
41
40
  this.logger.error(error)
42
-
43
41
  return currentVersion
44
42
  }
45
43
  }
@@ -55,7 +53,7 @@ class AutoUpdateTask extends BaseTask {
55
53
 
56
54
  this.logger.info('Updating...')
57
55
 
58
- await spawn('npm', ['-g', 'install', `@instadapp/interop-x@${tag}`, '-f']);
56
+ await spawnAsync('npm', ['-g', 'install', `@instadapp/interop-x@${tag}`, '-f']);
59
57
 
60
58
  await wait(5000)
61
59
 
@@ -67,11 +65,16 @@ class AutoUpdateTask extends BaseTask {
67
65
  this.logger.warn(`Installed version ${version}`)
68
66
  this.logger.warn(`Restarting...`)
69
67
 
70
- spawn(process.argv[0], process.argv.slice(1), {
68
+
69
+ // TODO: its restarting in the bg, but it should be in the fg
70
+ const subprocess = spawn(process.argv[0], process.argv.slice(1), {
71
71
  cwd: process.cwd(),
72
- stdio: "inherit"
72
+ stdio: "inherit",
73
+ // shell: process.env.SHELL,
73
74
  });
74
75
 
76
+ subprocess.unref();
77
+
75
78
  process.exit()
76
79
  }
77
80
  }
@@ -46,6 +46,11 @@ export class BaseTask extends EventEmitter implements IBaseTask {
46
46
  }
47
47
 
48
48
  prePollHandler(): boolean {
49
+ if(config.isMaintenanceMode()){
50
+ this.logger.warn('Maintenance mode is enabled. Skipping task.')
51
+ return false
52
+ }
53
+
49
54
  if (this.exceptLeadNode) {
50
55
  return !config.isLeadNode();
51
56
  }