@instadapp/interop-x 0.0.0-dev.0bace53 → 0.0.0-dev.0e01b7e

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 (308) hide show
  1. package/.github/workflows/ci.yml +19 -0
  2. package/dist/package.json +22 -12
  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 -2
  94. package/dist/src/abi/instList.json +232 -0
  95. package/dist/src/abi/interopX.json +1436 -0
  96. package/dist/src/api/index.js +8 -1
  97. package/dist/src/constants/addresses.js +12 -7
  98. package/dist/src/constants/blockConfirmations.js +8 -0
  99. package/dist/src/constants/capPerChain.js +8 -0
  100. package/dist/src/constants/index.js +3 -0
  101. package/dist/src/constants/tokens.js +30 -7
  102. package/dist/src/constants/wrappedNativeToken.js +8 -0
  103. package/dist/src/crons/index.js +3 -0
  104. package/dist/src/crons/prices.js +16 -0
  105. package/dist/src/db/models/transaction.js +26 -16
  106. package/dist/src/errors/index.js +30 -0
  107. package/dist/src/gnosis/actions/aaveV2/index.js +11 -0
  108. package/dist/src/gnosis/actions/aaveV2/source.js +100 -0
  109. package/dist/src/gnosis/actions/aaveV2/target.js +101 -0
  110. package/dist/src/gnosis/actions/aaveV3/index.js +11 -0
  111. package/dist/src/gnosis/actions/aaveV3/source.js +74 -0
  112. package/dist/src/gnosis/actions/aaveV3/target.js +87 -0
  113. package/dist/src/gnosis/actions/index.js +4 -2
  114. package/dist/src/gnosis/index.js +3 -3
  115. package/dist/src/index.js +2 -1
  116. package/dist/src/net/protocol/dial/SignatureDialProtocol.js +2 -2
  117. package/dist/src/providers/index.js +17 -0
  118. package/dist/src/providers/retry-provider.js +45 -0
  119. package/dist/src/services/Prices.js +74 -0
  120. package/dist/src/services/index.js +8 -0
  121. package/dist/src/tasks/InteropX/ProcessSubmitEvents.js +273 -0
  122. package/dist/src/tasks/InteropX/ProcessValidateEvents.js +203 -0
  123. package/dist/src/tasks/InteropX/SyncLogExecuteEvents.js +113 -0
  124. package/dist/src/tasks/{InteropXContract/SyncBridgeRequestEvents.js → InteropX/SyncLogSubmitEvents.js} +28 -17
  125. package/dist/src/tasks/{InteropXContract/SyncBridgeRequestSentEvents.js → InteropX/SyncLogValidateEvents.js} +44 -27
  126. package/dist/src/tasks/Transactions/SyncTransactionStatusTask.js +6 -3
  127. package/dist/src/tasks/index.js +19 -12
  128. package/dist/src/typechain/{InteropXContract.js → AaveV2Resolver.js} +0 -0
  129. package/dist/src/typechain/AaveV3Resolver.js +2 -0
  130. package/dist/src/typechain/BalanceResolver.js +2 -0
  131. package/dist/src/typechain/InstList.js +2 -0
  132. package/dist/src/typechain/InteropX.js +2 -0
  133. package/dist/src/typechain/factories/AaveV2Resolver__factory.js +1191 -0
  134. package/dist/src/typechain/factories/AaveV3Resolver__factory.js +887 -0
  135. package/dist/src/typechain/factories/BalanceResolver__factory.js +228 -0
  136. package/dist/src/typechain/factories/InstList__factory.js +249 -0
  137. package/dist/src/typechain/factories/InteropX__factory.js +1928 -0
  138. package/dist/src/typechain/factories/index.js +11 -3
  139. package/dist/src/typechain/index.js +11 -3
  140. package/dist/src/utils/async.js +18 -0
  141. package/dist/src/utils/dsa.js +24 -0
  142. package/dist/src/utils/formatting.js +67 -0
  143. package/dist/src/utils/gnosis.js +87 -0
  144. package/dist/src/utils/http.js +10 -0
  145. package/dist/src/utils/index.js +22 -165
  146. package/dist/src/utils/interop.js +16 -0
  147. package/dist/src/utils/tokens.js +22 -0
  148. package/dist/src/utils/validate.js +107 -0
  149. package/dist/src/utils/web3.js +93 -0
  150. package/package.json +22 -12
  151. package/src/abi/aaveV2Resolver.json +832 -0
  152. package/src/abi/aaveV3Resolver.json +628 -0
  153. package/src/abi/balanceResolver.json +211 -0
  154. package/src/abi/connectors/index.ts +14 -0
  155. package/src/abi/connectors/v1/aave.ts +147 -0
  156. package/src/abi/connectors/v1/aave_claim.ts +3 -0
  157. package/src/abi/connectors/v1/aave_migrate.ts +108 -0
  158. package/src/abi/connectors/v1/aave_polygon_migrate.ts +109 -0
  159. package/src/abi/connectors/v1/aave_stake.ts +3 -0
  160. package/src/abi/connectors/v1/aave_v1_import.ts +53 -0
  161. package/src/abi/connectors/v1/aave_v2.ts +229 -0
  162. package/src/abi/connectors/v1/aave_v2_import.ts +58 -0
  163. package/src/abi/connectors/v1/authority.ts +99 -0
  164. package/src/abi/connectors/v1/basic.ts +135 -0
  165. package/src/abi/connectors/v1/chi.ts +35 -0
  166. package/src/abi/connectors/v1/comp.ts +3 -0
  167. package/src/abi/connectors/v1/compound.ts +3 -0
  168. package/src/abi/connectors/v1/compoundImport.ts +68 -0
  169. package/src/abi/connectors/v1/compoundImport_v2.ts +3 -0
  170. package/src/abi/connectors/v1/compound_old.ts +447 -0
  171. package/src/abi/connectors/v1/curve.ts +139 -0
  172. package/src/abi/connectors/v1/curve_claim.ts +62 -0
  173. package/src/abi/connectors/v1/curve_gauge.ts +157 -0
  174. package/src/abi/connectors/v1/curve_sbtc.ts +139 -0
  175. package/src/abi/connectors/v1/curve_susd.ts +139 -0
  176. package/src/abi/connectors/v1/curve_three.ts +78 -0
  177. package/src/abi/connectors/v1/curve_y.ts +139 -0
  178. package/src/abi/connectors/v1/dsa_migrate_v1_to_v2.ts +3 -0
  179. package/src/abi/connectors/v1/dydx.ts +147 -0
  180. package/src/abi/connectors/v1/dydx_flash.ts +51 -0
  181. package/src/abi/connectors/v1/fee.ts +49 -0
  182. package/src/abi/connectors/v1/gelato.ts +1137 -0
  183. package/src/abi/connectors/v1/index.ts +42 -0
  184. package/src/abi/connectors/v1/instapool.ts +438 -0
  185. package/src/abi/connectors/v1/instapool_v2.ts +125 -0
  186. package/src/abi/connectors/v1/kyber.ts +116 -0
  187. package/src/abi/connectors/v1/maker.ts +479 -0
  188. package/src/abi/connectors/v1/maker_old.ts +299 -0
  189. package/src/abi/connectors/v1/math.ts +42 -0
  190. package/src/abi/connectors/v1/migrate.ts +45 -0
  191. package/src/abi/connectors/v1/oasis.ts +197 -0
  192. package/src/abi/connectors/v1/oneInch.ts +159 -0
  193. package/src/abi/connectors/v1/polygon_bridge.ts +3 -0
  194. package/src/abi/connectors/v1/refinance.ts +3 -0
  195. package/src/abi/connectors/v1/staking.ts +219 -0
  196. package/src/abi/connectors/v1/swerve.ts +178 -0
  197. package/src/abi/connectors/v1/uniswap.ts +297 -0
  198. package/src/abi/connectors/v2/1INCH-A.ts +3 -0
  199. package/src/abi/connectors/v2/1INCH-B.ts +3 -0
  200. package/src/abi/connectors/v2/AAVE-CLAIM-A.ts +3 -0
  201. package/src/abi/connectors/v2/AAVE-CLAIM-B.ts +165 -0
  202. package/src/abi/connectors/v2/AAVE-STAKE-A.ts +3 -0
  203. package/src/abi/connectors/v2/AAVE-V1-A.ts +130 -0
  204. package/src/abi/connectors/v2/AAVE-V1-IMPORT-A.ts +3 -0
  205. package/src/abi/connectors/v2/AAVE-V2-A.ts +229 -0
  206. package/src/abi/connectors/v2/AAVE-V2-IMPORT-A.ts +3 -0
  207. package/src/abi/connectors/v2/AAVE-V2-IMPORT-B.ts +224 -0
  208. package/src/abi/connectors/v2/AUTHORITY-A.ts +99 -0
  209. package/src/abi/connectors/v2/B-COMPOUND-A.ts +3 -0
  210. package/src/abi/connectors/v2/B-LIQUITY-A.ts +3 -0
  211. package/src/abi/connectors/v2/B-MAKERDAO-A.ts +3 -0
  212. package/src/abi/connectors/v2/BASIC-A.ts +135 -0
  213. package/src/abi/connectors/v2/BASIC-B.ts +3 -0
  214. package/src/abi/connectors/v2/BASIC-C.ts +3 -0
  215. package/src/abi/connectors/v2/COMP-A.ts +3 -0
  216. package/src/abi/connectors/v2/COMPOUND-A.ts +3 -0
  217. package/src/abi/connectors/v2/COMPOUND-IMPORT-A.ts +3 -0
  218. package/src/abi/connectors/v2/COMPOUND-IMPORT-B.ts +194 -0
  219. package/src/abi/connectors/v2/G-UNISWAP-A.ts +3 -0
  220. package/src/abi/connectors/v2/GELATO-AAVE-A.ts +3 -0
  221. package/src/abi/connectors/v2/INST-A.ts +3 -0
  222. package/src/abi/connectors/v2/INST-LM-A.ts +3 -0
  223. package/src/abi/connectors/v2/INST-STAKING-A.ts +3 -0
  224. package/src/abi/connectors/v2/INST-STAKING-B.ts +3 -0
  225. package/src/abi/connectors/v2/INSTAPOOL-A.ts +3 -0
  226. package/src/abi/connectors/v2/LIQUITY-A.ts +3 -0
  227. package/src/abi/connectors/v2/MAKERDAO-A.ts +3 -0
  228. package/src/abi/connectors/v2/MAKERDAO-CLAIM-A.ts +135 -0
  229. package/src/abi/connectors/v2/PARASWAP-A.ts +3 -0
  230. package/src/abi/connectors/v2/POLYGON-BRIDGE-A.ts +3 -0
  231. package/src/abi/connectors/v2/REFINANCE-A.ts +3 -0
  232. package/src/abi/connectors/v2/REFLEXER-A.ts +3 -0
  233. package/src/abi/connectors/v2/STAKE-ERC20-A.ts +3 -0
  234. package/src/abi/connectors/v2/UNISWAP-A.ts +297 -0
  235. package/src/abi/connectors/v2/UNISWAP-V2-A.ts +3 -0
  236. package/src/abi/connectors/v2/UNISWAP-V3-A.ts +3 -0
  237. package/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.ts +3 -0
  238. package/src/abi/connectors/v2/WETH-A.ts +3 -0
  239. package/src/abi/connectors/v2/YEARN-VAULT-A.ts +3 -0
  240. package/src/abi/connectors/v2/index.ts +87 -0
  241. package/src/abi/index.ts +15 -5
  242. package/src/abi/instList.json +232 -0
  243. package/src/abi/interopX.json +1436 -0
  244. package/src/api/index.ts +9 -1
  245. package/src/constants/addresses.ts +24 -8
  246. package/src/constants/blockConfirmations.ts +5 -0
  247. package/src/constants/capPerChain.ts +5 -0
  248. package/src/constants/index.ts +3 -0
  249. package/src/constants/tokens.ts +31 -8
  250. package/src/constants/wrappedNativeToken.ts +5 -0
  251. package/src/crons/index.ts +1 -0
  252. package/src/crons/prices.ts +12 -0
  253. package/src/db/models/transaction.ts +148 -93
  254. package/src/errors/index.ts +26 -0
  255. package/src/gnosis/actions/aaveV2/index.ts +9 -0
  256. package/src/gnosis/actions/aaveV2/source.ts +183 -0
  257. package/src/gnosis/actions/aaveV2/target.ts +168 -0
  258. package/src/gnosis/actions/aaveV3/index.ts +9 -0
  259. package/src/gnosis/actions/aaveV3/source.ts +119 -0
  260. package/src/gnosis/actions/aaveV3/target.ts +142 -0
  261. package/src/gnosis/actions/index.ts +4 -2
  262. package/src/gnosis/index.ts +3 -3
  263. package/src/index.ts +1 -0
  264. package/src/net/protocol/dial/SignatureDialProtocol.ts +3 -2
  265. package/src/providers/index.ts +1 -0
  266. package/src/providers/retry-provider.ts +51 -0
  267. package/src/services/Prices.ts +89 -0
  268. package/src/services/index.ts +1 -0
  269. package/src/tasks/InteropX/ProcessSubmitEvents.ts +385 -0
  270. package/src/tasks/InteropX/ProcessValidateEvents.ts +297 -0
  271. package/src/tasks/InteropX/SyncLogExecuteEvents.ts +161 -0
  272. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +138 -0
  273. package/src/tasks/InteropX/SyncLogValidateEvents.ts +151 -0
  274. package/src/tasks/Transactions/SyncTransactionStatusTask.ts +6 -3
  275. package/src/tasks/index.ts +20 -12
  276. package/src/typechain/AaveV2Resolver.ts +1017 -0
  277. package/src/typechain/AaveV3Resolver.ts +935 -0
  278. package/src/typechain/BalanceResolver.ts +266 -0
  279. package/src/typechain/InstList.ts +402 -0
  280. package/src/typechain/InteropX.ts +1216 -0
  281. package/src/typechain/factories/AaveV2Resolver__factory.ts +1198 -0
  282. package/src/typechain/factories/AaveV3Resolver__factory.ts +894 -0
  283. package/src/typechain/factories/BalanceResolver__factory.ts +235 -0
  284. package/src/typechain/factories/InstList__factory.ts +253 -0
  285. package/src/typechain/factories/InteropX__factory.ts +1932 -0
  286. package/src/typechain/factories/index.ts +5 -1
  287. package/src/typechain/index.ts +10 -2
  288. package/src/utils/async.ts +22 -0
  289. package/src/utils/dsa.ts +30 -0
  290. package/src/utils/formatting.ts +68 -0
  291. package/src/utils/gnosis.ts +166 -0
  292. package/src/utils/http.ts +6 -0
  293. package/src/utils/index.ts +9 -240
  294. package/src/utils/interop.ts +28 -0
  295. package/src/utils/tokens.ts +21 -0
  296. package/src/utils/validate.ts +171 -0
  297. package/src/utils/web3.ts +132 -0
  298. package/dist/src/abi/interopXContract.json +0 -391
  299. package/dist/src/gnosis/actions/withdraw/index.js +0 -41
  300. package/dist/src/tasks/InteropXContract/ProcessBridgeRequestEvents.js +0 -152
  301. package/dist/src/typechain/factories/InteropXContract__factory.js +0 -526
  302. package/src/abi/interopXContract.json +0 -391
  303. package/src/gnosis/actions/withdraw/index.ts +0 -56
  304. package/src/tasks/InteropXContract/ProcessBridgeRequestEvents.ts +0 -216
  305. package/src/tasks/InteropXContract/SyncBridgeRequestEvents.ts +0 -114
  306. package/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.ts +0 -120
  307. package/src/typechain/InteropXContract.ts +0 -524
  308. package/src/typechain/factories/InteropXContract__factory.ts +0 -533
package/src/api/index.ts CHANGED
@@ -21,11 +21,19 @@ export const startApiServer = async () => {
21
21
  limit: 20,
22
22
  offset: 0,
23
23
  order: [
24
- ['createdAt', 'DESC']
24
+ ['updatedAt', 'DESC']
25
25
  ]
26
26
  })
27
27
  })
28
28
 
29
+ server.get('/transactions/:transaction', async (req) => {
30
+ return await Transaction.findOne({
31
+ where: {
32
+ transactionHash: (req.params as any).transaction
33
+ }
34
+ })
35
+ })
36
+
29
37
  await server.listen(PORT, HOST)
30
38
 
31
39
  logger.log(`RPC Server listening at http://${HOST}:${PORT}`)
@@ -1,17 +1,33 @@
1
+ export type NetworkAddresses = {
2
+ gnosisSafe: string
3
+ multisend: string
4
+ interopX: string
5
+ dsaAddress: string
6
+ instList: string
7
+ aaveV2Resolver: string
8
+ aaveV3Resolver: string
9
+ balanceResolver: string
10
+ }
11
+
1
12
  export const addresses = {
2
- 1: {
3
- gnosisSafe: '0x811Bff6eF88dAAA0aD6438386B534A81cE3F160F',
4
- multisend: '0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761',
5
- interopXContract: '',
6
- },
7
13
  137: {
8
14
  gnosisSafe: '0x5635d2910e51da33d9DC0422c893CF4F28B69A25',
9
15
  multisend: '0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761',
10
- interopXContract: '0x2189741c8cAc1cf51570932817A7d6390646C80e',
16
+ interopX: '0xDB6083df37C5F224a3dF84A4B5f9fB60b6c8670a',
17
+ dsaAddress: '0x9Fbd453a8e7a158510fBae5D9935958507cf4b19',
18
+ instList: "0x839c2D3aDe63DF5b0b8F3E57D5e145057Ab41556",
19
+ aaveV2Resolver: "0x0731c1d0154C2bE74d50e2083Df10aa531AAbb10",
20
+ aaveV3Resolver: "0x1bD311bd5aD4DCfE18bCb55d42F0a3c714E2bfDe",
21
+ balanceResolver: "0xecc3991846bB21717B95A593Fd86C5930A491F95",
11
22
  },
12
23
  43114: {
13
24
  gnosisSafe: '0x31d7a5194Fe60AC209Cf1Ce2d539C9A60662Ed6b',
14
25
  multisend: '0x998739BFdAAdde7C933B942a68053933098f9EDa',
15
- interopXContract: '0x1867DF97Ec24bb0bbD4AD464F0Be9C6713422EAE',
26
+ interopX: '0xA82A87096709E3D8648c9d9a22f31133bC4B6d32',
27
+ dsaAddress: '0x995e67a652d2be45a8bff438b3dfac66dfff1c46',
28
+ instList: "0x9926955e0Dd681Dc303370C52f4Ad0a4dd061687",
29
+ aaveV2Resolver: "0x7C5C59944263311a1e350E3B871B0d1d8E9A513E",
30
+ aaveV3Resolver: "0xB0862d7dB941698A0A92F8dF6672F4B56A5F5b02",
31
+ balanceResolver: "0xD45dFA34cEeAB567208041331F5ed9916C23b1E8",
16
32
  }
17
- }
33
+ } as Record<number, NetworkAddresses>
@@ -0,0 +1,5 @@
1
+ export const blockConfirmations = {
2
+ "1": 12,
3
+ "137": 32,
4
+ "43114": 12,
5
+ };
@@ -0,0 +1,5 @@
1
+ export const capPerChain = {
2
+ "1": 100_000_000,
3
+ "137": 100_000_000,
4
+ "43114": 100_000_000,
5
+ };
@@ -1,2 +1,5 @@
1
1
  export * from './addresses';
2
2
  export * from './tokens';
3
+ export * from './blockConfirmations';
4
+ export * from './wrappedNativeToken';
5
+ export * from './capPerChain';
@@ -1,30 +1,42 @@
1
1
  export const tokens = {
2
2
  1: [
3
3
  {
4
+ aliases: ['eth'],
4
5
  symbol: "ETH",
5
6
  name: "Ethereum",
6
7
  address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
7
8
  decimals: 18,
8
9
  },
9
10
  {
11
+ aliases: ['weth'],
12
+ symbol: "WETH",
13
+ name: "Wrapped Ethereum",
14
+ address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
15
+ decimals: 18,
16
+ },
17
+ {
18
+ aliases: ['dai'],
10
19
  symbol: "DAI",
11
20
  name: "DAI Stable",
12
21
  address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
13
22
  decimals: 18,
14
23
  },
15
24
  {
25
+ aliases: ['usdc'],
16
26
  symbol: "USDC",
17
27
  name: "USD Coin",
18
28
  address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
19
29
  decimals: 6,
20
30
  },
21
31
  {
32
+ aliases: ['usdt'],
22
33
  symbol: "USDT",
23
34
  name: "Tether USD Coin",
24
35
  address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
25
36
  decimals: 6,
26
37
  },
27
38
  {
39
+ aliases: ['wbtc'],
28
40
  symbol: "WBTC",
29
41
  name: "Wrapped BTC",
30
42
  address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
@@ -33,72 +45,83 @@ export const tokens = {
33
45
  ],
34
46
  137: [
35
47
  {
48
+ aliases: ['eth', 'weth'],
36
49
  symbol: "ETH",
37
50
  name: "Ethereum",
38
51
  address: "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",
39
52
  decimals: 18,
40
53
  },
41
54
  {
55
+ aliases: ['dai'],
42
56
  symbol: "DAI",
43
57
  name: "DAI Stable",
44
58
  address: "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",
45
59
  decimals: 18,
46
60
  },
47
61
  {
62
+ aliases: ['usdc'],
48
63
  symbol: "USDC",
49
64
  name: "USD Coin",
50
65
  address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
51
66
  decimals: 6,
52
67
  },
53
68
  {
69
+ aliases: ['usdt'],
54
70
  symbol: "USDT",
55
71
  name: "Tether USD Coin",
56
72
  address: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
57
73
  decimals: 6,
58
74
  },
59
75
  {
76
+ aliases: ['wbtc'],
60
77
  symbol: "WBTC",
61
78
  name: "Wrapped BTC",
62
79
  address: "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",
63
80
  decimals: 8,
64
81
  },
65
- {
66
- symbol: "AVAX",
67
- name: "Avalanche Token",
68
- address: "0x2C89bbc92BD86F8075d1DEcc58C7F4E0107f286b",
69
- decimals: 18,
70
- },
71
82
  ],
72
83
  43114: [
73
84
  {
85
+ aliases: ['eth', 'weth'],
74
86
  symbol: "ETH",
75
87
  name: "Ethereum",
76
88
  address: "0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",
77
89
  decimals: 18,
78
90
  },
79
91
  {
92
+ aliases: ['dai'],
80
93
  symbol: "DAI",
81
94
  name: "DAI Stable",
82
95
  address: "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70",
83
96
  decimals: 18,
84
97
  },
85
98
  {
99
+ aliases: ['usdc'],
86
100
  symbol: "USDC",
87
101
  name: "USD Coin",
88
102
  address: "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",
89
103
  decimals: 6,
90
104
  },
91
105
  {
92
- symbol: "USDT",
106
+ aliases: ['usdt'],
107
+ symbol: "USDt",
93
108
  name: "Tether USD Coin",
109
+ address: "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",
110
+ decimals: 6,
111
+ },
112
+ {
113
+ aliases: ['usdt'],
114
+ symbol: "USDT.e",
115
+ name: "Tether USD",
94
116
  address: "0xc7198437980c041c805A1EDcbA50c1Ce5db95118",
95
117
  decimals: 6,
96
118
  },
97
119
  {
120
+ aliases: ["wbtc"],
98
121
  symbol: "WBTC",
99
122
  name: "Wrapped BTC",
100
123
  address: "0x50b7545627a5162F82A992c33b87aDc75187B218",
101
124
  decimals: 8,
102
125
  },
103
126
  ],
104
- };
127
+ } as Record<number, { aliases: string[], symbol: string, name: string, address: string, decimals: number }[]>;
@@ -0,0 +1,5 @@
1
+ export const wrappedNativeToken = {
2
+ "1": '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
3
+ "137": '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
4
+ "43114": '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'
5
+ };
@@ -0,0 +1 @@
1
+ import "./prices"
@@ -0,0 +1,12 @@
1
+ import { Prices } from "@/services";
2
+ import cron from "node-cron";
3
+
4
+ Prices.fetch().catch(console.log);
5
+
6
+ cron.schedule(`* * * * *`, async () => {
7
+ try {
8
+ await Prices.fetch();
9
+ } catch (error) {
10
+ console.log("Prices: ", error.message);
11
+ }
12
+ });
@@ -1,135 +1,190 @@
1
- import { sequelize } from '@/db/sequelize'
2
- import { CreationOptional, InferAttributes, InferCreationAttributes, Model, DataTypes } from 'sequelize';
3
-
4
- export interface IPositionTokenInfo{
5
- amount: string;
6
- sourceToken: string;
7
- targetToken: string;
1
+ import { sequelize } from "@/db/sequelize";
2
+ import {
3
+ CreationOptional,
4
+ InferAttributes,
5
+ InferCreationAttributes,
6
+ Model,
7
+ DataTypes,
8
+ } from "sequelize";
9
+
10
+ export interface IPositionTokenInfo {
11
+ amount: string;
12
+ sourceToken: string;
13
+ targetToken: string;
8
14
  }
9
15
 
10
16
  export interface IPosition {
11
- supply: IPositionTokenInfo[];
12
- withdraw: IPositionTokenInfo[];
17
+ supply: IPositionTokenInfo[];
18
+ withdraw: IPositionTokenInfo[];
13
19
  }
14
20
 
15
- export class Transaction extends Model<InferAttributes<Transaction>, InferCreationAttributes<Transaction>> {
16
- declare id: CreationOptional<number>;
17
-
18
- declare transactionHash: string;
19
-
20
- declare action: string;
21
- declare bridger: string;
22
- declare requestTransactionHash: string;
23
-
24
- declare requestBlockNumber: number;
25
-
26
- declare sourceChainId: number;
27
- declare sourceTransactionHash: CreationOptional<string>;
28
- declare sourceBlockNumber: CreationOptional<number>;
29
- declare sourceStatus: CreationOptional<string>;
30
- declare sourceErrors: CreationOptional<string[]>;
31
- declare sourceLogs: CreationOptional<any[]>;
32
- declare sourceCreatedAt: CreationOptional<Date>;
33
- declare sourceDelayUntil: CreationOptional<Date>;
34
-
35
- declare targetChainId: number;
36
- declare targetTransactionHash: CreationOptional<string>;
37
- declare targetBlockNumber: CreationOptional<number>;
38
- declare targetStatus: CreationOptional<string>;
39
- declare targetErrors: CreationOptional<string[]>;
40
- declare targetLogs: CreationOptional<any[]>;
41
- declare targetCreatedAt: CreationOptional<Date>;
42
- declare targetDelayUntil: CreationOptional<Date>;
43
-
44
- declare requestEvent: {
45
- bridger: string;
46
- metadata: string;
47
- position: IPosition;
48
- sourceChainId: number;
49
- targetChainId: number;
50
- };
51
- declare requestSentEvent: CreationOptional<{
52
- bridger: string;
53
- metadata: string;
54
- position: IPosition;
55
- sourceChainId: number;
56
- targetChainId: number;
57
- requestTransactionHash: string;
58
- }>;
59
- declare committedEvent: CreationOptional<any>;
60
- declare completedEvent: CreationOptional<any>;
61
-
62
- declare status: CreationOptional<string>;
63
-
64
- declare createdAt: CreationOptional<Date>;
65
- declare updatedAt: CreationOptional<Date>;
21
+ export class Transaction extends Model<
22
+ InferAttributes<Transaction>,
23
+ InferCreationAttributes<Transaction>
24
+ > {
25
+ declare id: CreationOptional<number>;
26
+
27
+ declare transactionHash: string;
28
+ declare vnonce: string;
29
+ declare actionId: string;
30
+ declare sourceSender: string;
31
+
32
+ declare submitChainId: number;
33
+ declare submitTransactionHash: string;
34
+ declare submitBlockNumber: number;
35
+ declare submitCreatedAt: Date;
36
+
37
+ declare sourceChainId: number;
38
+ declare sourceDsaId: string;
39
+ declare sourceTransactionHash: CreationOptional<string>;
40
+ declare sourceBlockNumber: CreationOptional<number>;
41
+ declare sourceStatus: CreationOptional<string>;
42
+ declare sourceErrors: CreationOptional<string[]>;
43
+ declare sourceLogs: CreationOptional<any[]>;
44
+ declare sourceCreatedAt: CreationOptional<Date>;
45
+ declare sourceDelayUntil: CreationOptional<Date>;
46
+
47
+ declare targetChainId: number;
48
+ declare targetDsaId: string;
49
+ declare targetTransactionHash: CreationOptional<string>;
50
+ declare targetBlockNumber: CreationOptional<number>;
51
+ declare targetStatus: CreationOptional<string>;
52
+ declare targetErrors: CreationOptional<string[]>;
53
+ declare targetLogs: CreationOptional<any[]>;
54
+ declare targetCreatedAt: CreationOptional<Date>;
55
+ declare targetDelayUntil: CreationOptional<Date>;
56
+
57
+ declare submitEvent: {
58
+ position: IPosition;
59
+ actionId: string;
60
+ actionIdHashHash: string;
61
+ actionIdHash: string;
62
+ sourceSender: string;
63
+ sourceDsaId: string;
64
+ targetDsaId: string;
65
+ sourceChainId: number;
66
+ targetChainId: number;
67
+ vnonce: string;
68
+ metadata: string;
69
+ };
70
+
71
+ declare validateEvent: CreationOptional<{
72
+ sourceSpells: Array<{ connector: string; data: string }>;
73
+ position: IPosition;
74
+ actionId: string;
75
+ actionIdHashHash: string;
76
+ actionIdHash: string;
77
+ sourceSender: string;
78
+ sourceDsaId: string;
79
+ targetDsaId: string;
80
+ sourceChainId: number;
81
+ targetChainId: number;
82
+ vnonce: string;
83
+ metadata: string;
84
+ }>;
85
+
86
+ declare executeEvent: CreationOptional<{
87
+ sourceSpells: Array<{ connector: string; data: string }>;
88
+ targetSpells: Array<{ connector: string; data: string }>;
89
+ position: IPosition;
90
+ actionId: string;
91
+ actionIdHashHash: string;
92
+ actionIdHash: string;
93
+ sourceSender: string;
94
+ sourceDsaId: string;
95
+ targetDsaId: string;
96
+ sourceChainId: number;
97
+ targetChainId: number;
98
+ vnonce: string;
99
+ metadata: string;
100
+ }>;
101
+
102
+ declare status: CreationOptional<string>;
103
+
104
+ declare createdAt: CreationOptional<Date>;
105
+ declare updatedAt: CreationOptional<Date>;
66
106
  }
67
107
 
68
- Transaction.init({
108
+ Transaction.init(
109
+ {
69
110
  id: {
70
- type: DataTypes.INTEGER,
71
- autoIncrement: true,
72
- primaryKey: true
111
+ type: DataTypes.INTEGER,
112
+ autoIncrement: true,
113
+ primaryKey: true,
73
114
  },
74
115
 
75
- requestTransactionHash: DataTypes.NUMBER,
76
- requestBlockNumber: DataTypes.NUMBER,
77
-
78
116
  transactionHash: DataTypes.STRING,
79
- action: DataTypes.STRING,
80
- bridger: DataTypes.STRING,
117
+ actionId: DataTypes.STRING,
118
+ vnonce: DataTypes.STRING,
119
+ sourceSender: DataTypes.STRING,
120
+
121
+ submitChainId: DataTypes.NUMBER,
122
+ submitTransactionHash: DataTypes.STRING,
123
+ submitBlockNumber: DataTypes.NUMBER,
124
+ submitCreatedAt: DataTypes.DATE,
81
125
 
82
126
  sourceChainId: DataTypes.NUMBER,
127
+ sourceDsaId: DataTypes.STRING,
83
128
  sourceTransactionHash: DataTypes.STRING,
84
129
  sourceBlockNumber: DataTypes.NUMBER,
85
130
  sourceStatus: {
86
- type: DataTypes.STRING,
87
- defaultValue: 'uninitialised'
131
+ type: DataTypes.STRING,
132
+ defaultValue: "pending",
88
133
  },
89
134
  sourceErrors: {
90
- type: DataTypes.JSON,
91
- // defaultValue: [],
135
+ type: DataTypes.JSON,
136
+ // defaultValue: [],
92
137
  },
93
138
  sourceLogs: {
94
- type: DataTypes.JSON,
95
- // defaultValue: [],
139
+ type: DataTypes.JSON,
140
+ // defaultValue: [],
96
141
  },
97
142
  sourceCreatedAt: {
98
- type: DataTypes.DATE,
99
- defaultValue: Date.now()
143
+ type: DataTypes.DATE,
144
+ defaultValue: Date.now(),
100
145
  },
101
- sourceDelayUntil: DataTypes.STRING,
146
+ sourceDelayUntil: DataTypes.DATE,
102
147
 
103
148
  targetChainId: DataTypes.NUMBER,
149
+ targetDsaId: DataTypes.STRING,
104
150
  targetTransactionHash: DataTypes.STRING,
105
151
  targetBlockNumber: DataTypes.NUMBER,
106
152
  targetStatus: {
107
- type: DataTypes.STRING,
108
- defaultValue: 'uninitialised'
153
+ type: DataTypes.STRING,
154
+ defaultValue: "pending",
109
155
  },
110
156
  targetErrors: {
111
- type: DataTypes.JSON,
112
- // defaultValue: [],
157
+ type: DataTypes.JSON,
158
+ // defaultValue: [],
113
159
  },
114
160
  targetLogs: {
115
- type: DataTypes.JSON,
116
- // defaultValue: [],
161
+ type: DataTypes.JSON,
162
+ // defaultValue: [],
117
163
  },
118
164
  targetCreatedAt: DataTypes.DATE,
119
165
  targetDelayUntil: DataTypes.DATE,
120
166
 
121
- requestEvent: {
122
- type: DataTypes.JSON,
123
- allowNull: false
167
+ submitEvent: {
168
+ type: DataTypes.JSON,
169
+ allowNull: false,
170
+ },
171
+
172
+ validateEvent: {
173
+ type: DataTypes.JSON,
174
+ allowNull: true,
175
+ },
176
+
177
+ executeEvent: {
178
+ type: DataTypes.JSON,
179
+ allowNull: true,
124
180
  },
125
- requestSentEvent: DataTypes.JSON,
126
- committedEvent: DataTypes.JSON,
127
- completedEvent: DataTypes.JSON,
128
181
 
129
182
  status: {
130
- type: DataTypes.STRING,
131
- defaultValue: 'pending'
183
+ type: DataTypes.STRING,
184
+ defaultValue: "pending",
132
185
  },
133
186
  createdAt: DataTypes.DATE,
134
187
  updatedAt: DataTypes.DATE,
135
- }, { sequelize, tableName: 'transactions' });
188
+ },
189
+ { sequelize, tableName: "transactions" }
190
+ );
@@ -0,0 +1,26 @@
1
+ export class UnsupportedChaindIdError extends Error {
2
+ constructor(chainId: any) {
3
+ super(`Unsupported chainId: ${chainId}`);
4
+ }
5
+ }
6
+
7
+ export class LiquidityError extends Error {
8
+ constructor(message?: string) {
9
+ super(message || "Not enough liquidity");
10
+ Object.setPrototypeOf(this, new.target.prototype);
11
+ }
12
+ }
13
+
14
+ export class InvalidChaindIdError extends Error {
15
+ constructor(message?: string) {
16
+ super(message || "Invalid chain id");
17
+ Object.setPrototypeOf(this, new.target.prototype);
18
+ }
19
+ }
20
+
21
+ export class LowLiquidityError extends Error {
22
+ constructor(message?: string) {
23
+ super(message || "Low liquidity");
24
+ Object.setPrototypeOf(this, new.target.prototype);
25
+ }
26
+ }
@@ -0,0 +1,9 @@
1
+ import { Transaction } from "@/db";
2
+ import source from "./source";
3
+ import target from "./target";
4
+
5
+
6
+
7
+ export default async function (transaction: Transaction, type: 'source' | 'target') {
8
+ return type === 'source' ? source(transaction) : target(transaction);
9
+ }