@instadapp/interop-x 0.0.0-dev.d4e8223 → 0.0.0-dev.d58bb7b

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 (259) hide show
  1. package/.github/workflows/ci.yml +19 -0
  2. package/dist/package.json +16 -13
  3. package/dist/src/abi/connectors/index.js +36 -0
  4. package/dist/src/abi/connectors/v1/aave.js +148 -0
  5. package/dist/src/abi/connectors/v1/aave_claim.js +4 -0
  6. package/dist/src/abi/connectors/v1/aave_migrate.js +109 -0
  7. package/dist/src/abi/connectors/v1/aave_polygon_migrate.js +110 -0
  8. package/dist/src/abi/connectors/v1/aave_stake.js +4 -0
  9. package/dist/src/abi/connectors/v1/aave_v1_import.js +54 -0
  10. package/dist/src/abi/connectors/v1/aave_v2.js +230 -0
  11. package/dist/src/abi/connectors/v1/aave_v2_import.js +59 -0
  12. package/dist/src/abi/connectors/v1/authority.js +100 -0
  13. package/dist/src/abi/connectors/v1/basic.js +136 -0
  14. package/dist/src/abi/connectors/v1/chi.js +36 -0
  15. package/dist/src/abi/connectors/v1/comp.js +4 -0
  16. package/dist/src/abi/connectors/v1/compound.js +4 -0
  17. package/dist/src/abi/connectors/v1/compoundImport.js +69 -0
  18. package/dist/src/abi/connectors/v1/compoundImport_v2.js +4 -0
  19. package/dist/src/abi/connectors/v1/compound_old.js +448 -0
  20. package/dist/src/abi/connectors/v1/curve.js +140 -0
  21. package/dist/src/abi/connectors/v1/curve_claim.js +63 -0
  22. package/dist/src/abi/connectors/v1/curve_gauge.js +158 -0
  23. package/dist/src/abi/connectors/v1/curve_sbtc.js +140 -0
  24. package/dist/src/abi/connectors/v1/curve_susd.js +140 -0
  25. package/dist/src/abi/connectors/v1/curve_three.js +79 -0
  26. package/dist/src/abi/connectors/v1/curve_y.js +140 -0
  27. package/dist/src/abi/connectors/v1/dsa_migrate_v1_to_v2.js +4 -0
  28. package/dist/src/abi/connectors/v1/dydx.js +148 -0
  29. package/dist/src/abi/connectors/v1/dydx_flash.js +52 -0
  30. package/dist/src/abi/connectors/v1/fee.js +50 -0
  31. package/dist/src/abi/connectors/v1/gelato.js +1138 -0
  32. package/dist/src/abi/connectors/v1/index.js +58 -0
  33. package/dist/src/abi/connectors/v1/instapool.js +439 -0
  34. package/dist/src/abi/connectors/v1/instapool_v2.js +126 -0
  35. package/dist/src/abi/connectors/v1/kyber.js +117 -0
  36. package/dist/src/abi/connectors/v1/maker.js +480 -0
  37. package/dist/src/abi/connectors/v1/maker_old.js +300 -0
  38. package/dist/src/abi/connectors/v1/math.js +43 -0
  39. package/dist/src/abi/connectors/v1/migrate.js +46 -0
  40. package/dist/src/abi/connectors/v1/oasis.js +198 -0
  41. package/dist/src/abi/connectors/v1/oneInch.js +160 -0
  42. package/dist/src/abi/connectors/v1/polygon_bridge.js +4 -0
  43. package/dist/src/abi/connectors/v1/refinance.js +4 -0
  44. package/dist/src/abi/connectors/v1/staking.js +220 -0
  45. package/dist/src/abi/connectors/v1/swerve.js +179 -0
  46. package/dist/src/abi/connectors/v1/uniswap.js +297 -0
  47. package/dist/src/abi/connectors/v2/1INCH-A.js +4 -0
  48. package/dist/src/abi/connectors/v2/1INCH-B.js +4 -0
  49. package/dist/src/abi/connectors/v2/AAVE-CLAIM-A.js +4 -0
  50. package/dist/src/abi/connectors/v2/AAVE-CLAIM-B.js +166 -0
  51. package/dist/src/abi/connectors/v2/AAVE-STAKE-A.js +4 -0
  52. package/dist/src/abi/connectors/v2/AAVE-V1-A.js +130 -0
  53. package/dist/src/abi/connectors/v2/AAVE-V1-IMPORT-A.js +4 -0
  54. package/dist/src/abi/connectors/v2/AAVE-V2-A.js +230 -0
  55. package/dist/src/abi/connectors/v2/AAVE-V2-IMPORT-A.js +4 -0
  56. package/dist/src/abi/connectors/v2/AAVE-V2-IMPORT-B.js +225 -0
  57. package/dist/src/abi/connectors/v2/AUTHORITY-A.js +100 -0
  58. package/dist/src/abi/connectors/v2/B-COMPOUND-A.js +4 -0
  59. package/dist/src/abi/connectors/v2/B-LIQUITY-A.js +4 -0
  60. package/dist/src/abi/connectors/v2/B-MAKERDAO-A.js +4 -0
  61. package/dist/src/abi/connectors/v2/BASIC-A.js +136 -0
  62. package/dist/src/abi/connectors/v2/BASIC-B.js +4 -0
  63. package/dist/src/abi/connectors/v2/BASIC-C.js +4 -0
  64. package/dist/src/abi/connectors/v2/COMP-A.js +4 -0
  65. package/dist/src/abi/connectors/v2/COMPOUND-A.js +4 -0
  66. package/dist/src/abi/connectors/v2/COMPOUND-IMPORT-A.js +4 -0
  67. package/dist/src/abi/connectors/v2/COMPOUND-IMPORT-B.js +195 -0
  68. package/dist/src/abi/connectors/v2/G-UNISWAP-A.js +4 -0
  69. package/dist/src/abi/connectors/v2/GELATO-AAVE-A.js +4 -0
  70. package/dist/src/abi/connectors/v2/INST-A.js +4 -0
  71. package/dist/src/abi/connectors/v2/INST-LM-A.js +4 -0
  72. package/dist/src/abi/connectors/v2/INST-STAKING-A.js +4 -0
  73. package/dist/src/abi/connectors/v2/INST-STAKING-B.js +4 -0
  74. package/dist/src/abi/connectors/v2/INSTAPOOL-A.js +4 -0
  75. package/dist/src/abi/connectors/v2/LIQUITY-A.js +4 -0
  76. package/dist/src/abi/connectors/v2/MAKERDAO-A.js +4 -0
  77. package/dist/src/abi/connectors/v2/MAKERDAO-CLAIM-A.js +136 -0
  78. package/dist/src/abi/connectors/v2/PARASWAP-A.js +4 -0
  79. package/dist/src/abi/connectors/v2/POLYGON-BRIDGE-A.js +4 -0
  80. package/dist/src/abi/connectors/v2/REFINANCE-A.js +4 -0
  81. package/dist/src/abi/connectors/v2/REFLEXER-A.js +4 -0
  82. package/dist/src/abi/connectors/v2/STAKE-ERC20-A.js +4 -0
  83. package/dist/src/abi/connectors/v2/UNISWAP-A.js +297 -0
  84. package/dist/src/abi/connectors/v2/UNISWAP-V2-A.js +4 -0
  85. package/dist/src/abi/connectors/v2/UNISWAP-V3-A.js +4 -0
  86. package/dist/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.js +4 -0
  87. package/dist/src/abi/connectors/v2/WETH-A.js +4 -0
  88. package/dist/src/abi/connectors/v2/YEARN-VAULT-A.js +4 -0
  89. package/dist/src/abi/connectors/v2/index.js +89 -0
  90. package/dist/src/abi/index.js +4 -4
  91. package/dist/src/abi/interopX.json +1436 -0
  92. package/dist/src/alias.js +10 -0
  93. package/dist/src/api/index.js +1 -1
  94. package/dist/src/constants/addresses.js +4 -7
  95. package/dist/src/constants/blockConfirmations.js +8 -0
  96. package/dist/src/constants/index.js +1 -1
  97. package/dist/src/constants/tokens.js +62 -39
  98. package/dist/src/db/models/transaction.js +37 -15
  99. package/dist/src/gnosis/actions/aaveV2/index.js +11 -0
  100. package/dist/src/gnosis/actions/aaveV2/source.js +73 -0
  101. package/dist/src/gnosis/actions/aaveV2/target.js +8 -0
  102. package/dist/src/gnosis/actions/index.js +9 -0
  103. package/dist/src/gnosis/index.js +20 -0
  104. package/dist/src/index.js +7 -18
  105. package/dist/src/net/protocol/dial/SignatureDialProtocol.js +9 -10
  106. package/dist/src/net/protocol/dial/TransactionStatusDialProtocol.js +2 -0
  107. package/dist/src/net/protocol/index.js +11 -1
  108. package/dist/src/tasks/InteropX/ProcessSubmitSubmitEvents.js +179 -0
  109. package/dist/src/tasks/InteropX/SyncLogSubmitEvents.js +87 -0
  110. package/dist/src/tasks/InteropX/SyncLogValidateEvents.js +105 -0
  111. package/dist/src/tasks/Transactions/SyncTransactionStatusTask.js +8 -3
  112. package/dist/src/tasks/index.js +14 -29
  113. package/dist/src/typechain/{InteropBridgeToken.js → InteropX.js} +0 -0
  114. package/dist/src/typechain/factories/InteropX__factory.js +1928 -0
  115. package/dist/src/typechain/factories/index.js +3 -5
  116. package/dist/src/typechain/index.js +3 -5
  117. package/dist/src/utils/index.js +97 -112
  118. package/package.json +16 -13
  119. package/src/abi/connectors/index.ts +14 -0
  120. package/src/abi/connectors/v1/aave.ts +147 -0
  121. package/src/abi/connectors/v1/aave_claim.ts +3 -0
  122. package/src/abi/connectors/v1/aave_migrate.ts +108 -0
  123. package/src/abi/connectors/v1/aave_polygon_migrate.ts +109 -0
  124. package/src/abi/connectors/v1/aave_stake.ts +3 -0
  125. package/src/abi/connectors/v1/aave_v1_import.ts +53 -0
  126. package/src/abi/connectors/v1/aave_v2.ts +229 -0
  127. package/src/abi/connectors/v1/aave_v2_import.ts +58 -0
  128. package/src/abi/connectors/v1/authority.ts +99 -0
  129. package/src/abi/connectors/v1/basic.ts +135 -0
  130. package/src/abi/connectors/v1/chi.ts +35 -0
  131. package/src/abi/connectors/v1/comp.ts +3 -0
  132. package/src/abi/connectors/v1/compound.ts +3 -0
  133. package/src/abi/connectors/v1/compoundImport.ts +68 -0
  134. package/src/abi/connectors/v1/compoundImport_v2.ts +3 -0
  135. package/src/abi/connectors/v1/compound_old.ts +447 -0
  136. package/src/abi/connectors/v1/curve.ts +139 -0
  137. package/src/abi/connectors/v1/curve_claim.ts +62 -0
  138. package/src/abi/connectors/v1/curve_gauge.ts +157 -0
  139. package/src/abi/connectors/v1/curve_sbtc.ts +139 -0
  140. package/src/abi/connectors/v1/curve_susd.ts +139 -0
  141. package/src/abi/connectors/v1/curve_three.ts +78 -0
  142. package/src/abi/connectors/v1/curve_y.ts +139 -0
  143. package/src/abi/connectors/v1/dsa_migrate_v1_to_v2.ts +3 -0
  144. package/src/abi/connectors/v1/dydx.ts +147 -0
  145. package/src/abi/connectors/v1/dydx_flash.ts +51 -0
  146. package/src/abi/connectors/v1/fee.ts +49 -0
  147. package/src/abi/connectors/v1/gelato.ts +1137 -0
  148. package/src/abi/connectors/v1/index.ts +42 -0
  149. package/src/abi/connectors/v1/instapool.ts +438 -0
  150. package/src/abi/connectors/v1/instapool_v2.ts +125 -0
  151. package/src/abi/connectors/v1/kyber.ts +116 -0
  152. package/src/abi/connectors/v1/maker.ts +479 -0
  153. package/src/abi/connectors/v1/maker_old.ts +299 -0
  154. package/src/abi/connectors/v1/math.ts +42 -0
  155. package/src/abi/connectors/v1/migrate.ts +45 -0
  156. package/src/abi/connectors/v1/oasis.ts +197 -0
  157. package/src/abi/connectors/v1/oneInch.ts +159 -0
  158. package/src/abi/connectors/v1/polygon_bridge.ts +3 -0
  159. package/src/abi/connectors/v1/refinance.ts +3 -0
  160. package/src/abi/connectors/v1/staking.ts +219 -0
  161. package/src/abi/connectors/v1/swerve.ts +178 -0
  162. package/src/abi/connectors/v1/uniswap.ts +297 -0
  163. package/src/abi/connectors/v2/1INCH-A.ts +3 -0
  164. package/src/abi/connectors/v2/1INCH-B.ts +3 -0
  165. package/src/abi/connectors/v2/AAVE-CLAIM-A.ts +3 -0
  166. package/src/abi/connectors/v2/AAVE-CLAIM-B.ts +165 -0
  167. package/src/abi/connectors/v2/AAVE-STAKE-A.ts +3 -0
  168. package/src/abi/connectors/v2/AAVE-V1-A.ts +130 -0
  169. package/src/abi/connectors/v2/AAVE-V1-IMPORT-A.ts +3 -0
  170. package/src/abi/connectors/v2/AAVE-V2-A.ts +229 -0
  171. package/src/abi/connectors/v2/AAVE-V2-IMPORT-A.ts +3 -0
  172. package/src/abi/connectors/v2/AAVE-V2-IMPORT-B.ts +224 -0
  173. package/src/abi/connectors/v2/AUTHORITY-A.ts +99 -0
  174. package/src/abi/connectors/v2/B-COMPOUND-A.ts +3 -0
  175. package/src/abi/connectors/v2/B-LIQUITY-A.ts +3 -0
  176. package/src/abi/connectors/v2/B-MAKERDAO-A.ts +3 -0
  177. package/src/abi/connectors/v2/BASIC-A.ts +135 -0
  178. package/src/abi/connectors/v2/BASIC-B.ts +3 -0
  179. package/src/abi/connectors/v2/BASIC-C.ts +3 -0
  180. package/src/abi/connectors/v2/COMP-A.ts +3 -0
  181. package/src/abi/connectors/v2/COMPOUND-A.ts +3 -0
  182. package/src/abi/connectors/v2/COMPOUND-IMPORT-A.ts +3 -0
  183. package/src/abi/connectors/v2/COMPOUND-IMPORT-B.ts +194 -0
  184. package/src/abi/connectors/v2/G-UNISWAP-A.ts +3 -0
  185. package/src/abi/connectors/v2/GELATO-AAVE-A.ts +3 -0
  186. package/src/abi/connectors/v2/INST-A.ts +3 -0
  187. package/src/abi/connectors/v2/INST-LM-A.ts +3 -0
  188. package/src/abi/connectors/v2/INST-STAKING-A.ts +3 -0
  189. package/src/abi/connectors/v2/INST-STAKING-B.ts +3 -0
  190. package/src/abi/connectors/v2/INSTAPOOL-A.ts +3 -0
  191. package/src/abi/connectors/v2/LIQUITY-A.ts +3 -0
  192. package/src/abi/connectors/v2/MAKERDAO-A.ts +3 -0
  193. package/src/abi/connectors/v2/MAKERDAO-CLAIM-A.ts +135 -0
  194. package/src/abi/connectors/v2/PARASWAP-A.ts +3 -0
  195. package/src/abi/connectors/v2/POLYGON-BRIDGE-A.ts +3 -0
  196. package/src/abi/connectors/v2/REFINANCE-A.ts +3 -0
  197. package/src/abi/connectors/v2/REFLEXER-A.ts +3 -0
  198. package/src/abi/connectors/v2/STAKE-ERC20-A.ts +3 -0
  199. package/src/abi/connectors/v2/UNISWAP-A.ts +297 -0
  200. package/src/abi/connectors/v2/UNISWAP-V2-A.ts +3 -0
  201. package/src/abi/connectors/v2/UNISWAP-V3-A.ts +3 -0
  202. package/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.ts +3 -0
  203. package/src/abi/connectors/v2/WETH-A.ts +3 -0
  204. package/src/abi/connectors/v2/YEARN-VAULT-A.ts +3 -0
  205. package/src/abi/connectors/v2/index.ts +87 -0
  206. package/src/abi/index.ts +7 -7
  207. package/src/abi/interopX.json +1436 -0
  208. package/src/alias.ts +6 -0
  209. package/src/api/index.ts +1 -1
  210. package/src/constants/addresses.ts +5 -8
  211. package/src/constants/blockConfirmations.ts +5 -0
  212. package/src/constants/index.ts +1 -1
  213. package/src/constants/tokens.ts +63 -40
  214. package/src/db/models/transaction.ts +138 -65
  215. package/src/gnosis/actions/aaveV2/index.ts +9 -0
  216. package/src/gnosis/actions/aaveV2/source.ts +118 -0
  217. package/src/gnosis/actions/aaveV2/target.ts +13 -0
  218. package/src/gnosis/actions/index.ts +5 -0
  219. package/src/gnosis/index.ts +19 -0
  220. package/src/index.ts +6 -17
  221. package/src/net/protocol/dial/SignatureDialProtocol.ts +12 -13
  222. package/src/net/protocol/dial/TransactionStatusDialProtocol.ts +3 -1
  223. package/src/net/protocol/index.ts +13 -3
  224. package/src/tasks/InteropX/ProcessSubmitSubmitEvents.ts +269 -0
  225. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +139 -0
  226. package/src/tasks/InteropX/SyncLogValidateEvents.ts +152 -0
  227. package/src/tasks/Transactions/SyncTransactionStatusTask.ts +8 -3
  228. package/src/tasks/index.ts +16 -37
  229. package/src/typechain/InteropX.ts +1216 -0
  230. package/src/typechain/factories/InteropX__factory.ts +1932 -0
  231. package/src/typechain/factories/index.ts +1 -2
  232. package/src/typechain/index.ts +2 -4
  233. package/src/utils/index.ts +229 -183
  234. package/tsconfig.json +7 -2
  235. package/dist/src/abi/interopBridgeToken.json +0 -298
  236. package/dist/src/abi/interopXGateway.json +0 -184
  237. package/dist/src/constants/itokens.js +0 -13
  238. package/dist/src/tasks/InteropBridge/ProcessWithdrawEvents.js +0 -146
  239. package/dist/src/tasks/InteropBridge/SyncBurnEvents.js +0 -71
  240. package/dist/src/tasks/InteropBridge/SyncMintEvents.js +0 -67
  241. package/dist/src/tasks/InteropXGateway/ProcessDepositEvents.js +0 -162
  242. package/dist/src/tasks/InteropXGateway/SyncDepositEvents.js +0 -74
  243. package/dist/src/tasks/InteropXGateway/SyncWithdrawtEvents.js +0 -72
  244. package/dist/src/typechain/InteropXGateway.js +0 -2
  245. package/dist/src/typechain/factories/InteropBridgeToken__factory.js +0 -471
  246. package/dist/src/typechain/factories/InteropXGateway__factory.js +0 -265
  247. package/src/abi/interopBridgeToken.json +0 -298
  248. package/src/abi/interopXGateway.json +0 -184
  249. package/src/constants/itokens.ts +0 -10
  250. package/src/tasks/InteropBridge/ProcessWithdrawEvents.ts +0 -231
  251. package/src/tasks/InteropBridge/SyncBurnEvents.ts +0 -121
  252. package/src/tasks/InteropBridge/SyncMintEvents.ts +0 -99
  253. package/src/tasks/InteropXGateway/ProcessDepositEvents.ts +0 -257
  254. package/src/tasks/InteropXGateway/SyncDepositEvents.ts +0 -124
  255. package/src/tasks/InteropXGateway/SyncWithdrawtEvents.ts +0 -105
  256. package/src/typechain/InteropBridgeToken.ts +0 -692
  257. package/src/typechain/InteropXGateway.ts +0 -407
  258. package/src/typechain/factories/InteropBridgeToken__factory.ts +0 -478
  259. package/src/typechain/factories/InteropXGateway__factory.ts +0 -272
package/src/alias.ts ADDED
@@ -0,0 +1,6 @@
1
+ import moduleAlias from 'module-alias';
2
+ moduleAlias.addAliases({
3
+ "@": __dirname,
4
+ })
5
+
6
+ moduleAlias();
package/src/api/index.ts CHANGED
@@ -21,7 +21,7 @@ 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
  })
@@ -1,17 +1,14 @@
1
1
  export const addresses = {
2
- 1: {
3
- gnosisSafe: '0x811Bff6eF88dAAA0aD6438386B534A81cE3F160F',
4
- multisend: '0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761',
5
- interopXGateway: '',
6
- },
7
2
  137: {
8
3
  gnosisSafe: '0x5635d2910e51da33d9DC0422c893CF4F28B69A25',
9
4
  multisend: '0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761',
10
- interopXGateway: '',
5
+ interopX: '0xDB6083df37C5F224a3dF84A4B5f9fB60b6c8670a',
6
+ dsaAddress: '0x9Fbd453a8e7a158510fBae5D9935958507cf4b19',
11
7
  },
12
8
  43114: {
13
9
  gnosisSafe: '0x31d7a5194Fe60AC209Cf1Ce2d539C9A60662Ed6b',
14
10
  multisend: '0x998739BFdAAdde7C933B942a68053933098f9EDa',
15
- interopXGateway: '0xF0317C5Bc206F2291dd2f3eE9C4cDB5Bbb25418d',
11
+ interopX: '0xd61f55C6d9deD35B9d13243b816c4BcC1d78592b',
12
+ dsaAddress: '0xFcB7d826E32081c4799de2f83b47b49df600dc8c',
16
13
  }
17
- }
14
+ } as Record<number, { gnosisSafe: string, multisend: string, interopX: string, dsaAddress: string }>
@@ -0,0 +1,5 @@
1
+ export const blockConfirmations = {
2
+ "1": 12,
3
+ "137": 32,
4
+ "43114": 12,
5
+ };
@@ -1,3 +1,3 @@
1
1
  export * from './addresses';
2
2
  export * from './tokens';
3
- export * from './itokens';
3
+ export * from './blockConfirmations';
@@ -1,104 +1,127 @@
1
1
  export const tokens = {
2
- 1: [
3
- {
4
- symbol: "ETH",
5
- name: "Ethereum",
6
- address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
7
- decimals: 18,
8
- },
9
- {
10
- symbol: "DAI",
11
- name: "DAI Stable",
12
- address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
13
- decimals: 18,
14
- },
15
- {
16
- symbol: "USDC",
17
- name: "USD Coin",
18
- address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
19
- decimals: 6,
20
- },
21
- {
22
- symbol: "USDT",
23
- name: "Tether USD Coin",
24
- address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
25
- decimals: 6,
26
- },
27
- {
28
- symbol: "WBTC",
29
- name: "Wrapped BTC",
30
- address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
31
- decimals: 8,
32
- },
33
- ],
2
+ // 1: [
3
+ // {
4
+ // aliases: ['eth'],
5
+ // symbol: "ETH",
6
+ // name: "Ethereum",
7
+ // address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
8
+ // decimals: 18,
9
+ // },
10
+ // {
11
+ // aliases: ['weth'],
12
+ // symbol: "WETH",
13
+ // name: "Wrapped Ethereum",
14
+ // address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
15
+ // decimals: 18,
16
+ // },
17
+ // {
18
+ // aliases: ['dai'],
19
+ // symbol: "DAI",
20
+ // name: "DAI Stable",
21
+ // address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
22
+ // decimals: 18,
23
+ // },
24
+ // {
25
+ // aliases: ['usdc'],
26
+ // symbol: "USDC",
27
+ // name: "USD Coin",
28
+ // address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
29
+ // decimals: 6,
30
+ // },
31
+ // {
32
+ // aliases: ['usdt'],
33
+ // symbol: "USDT",
34
+ // name: "Tether USD Coin",
35
+ // address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
36
+ // decimals: 6,
37
+ // },
38
+ // {
39
+ // aliases: ['wbtc'],
40
+ // symbol: "WBTC",
41
+ // name: "Wrapped BTC",
42
+ // address: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
43
+ // decimals: 8,
44
+ // },
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 }[]>;
@@ -1,96 +1,169 @@
1
- import { sequelize } from '@/db/sequelize'
2
- import { CreationOptional, InferAttributes, InferCreationAttributes, Model, DataTypes } from 'sequelize';
3
-
4
- export class Transaction extends Model<InferAttributes<Transaction>, InferCreationAttributes<Transaction>> {
5
- declare id: CreationOptional<number>;
6
-
7
- declare transactionHash: string;
8
- declare action: string;
9
- declare from: string;
10
- declare to: string;
11
-
12
- declare submitTransactionHash: string;
13
- declare submitBlockNumber: number;
14
-
15
- declare sourceChainId: number;
16
- declare sourceTransactionHash: CreationOptional<string>;
17
- declare sourceBlockNumber: CreationOptional<number>;
18
- declare sourceStatus: string;
19
- declare sourceErrors: CreationOptional<string[]>;
20
- declare sourceCreatedAt: CreationOptional<Date>;
21
- declare sourceDelayUntil: CreationOptional<Date>;
22
-
23
- declare targetChainId: number;
24
- declare targetTransactionHash: CreationOptional<string>;
25
- declare targetBlockNumber: CreationOptional<number>;
26
- declare targetStatus: string;
27
- declare targetErrors: CreationOptional<string[]>;
28
- declare targetCreatedAt: CreationOptional<Date>;
29
- declare targetDelayUntil: CreationOptional<Date>;
30
-
31
- declare submitEvent: any;
32
- declare sourceEvent: CreationOptional<any>;
33
- declare targetEvent: CreationOptional<any>;
34
-
35
- declare metadata: CreationOptional<any>;
36
-
37
- declare status: string;
38
-
39
- declare createdAt: CreationOptional<Date>;
40
- declare updatedAt: CreationOptional<Date>;
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;
41
14
  }
42
15
 
43
- Transaction.init({
16
+ export interface IPosition {
17
+ supply: IPositionTokenInfo[];
18
+ withdraw: IPositionTokenInfo[];
19
+ }
20
+
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 status: CreationOptional<string>;
87
+
88
+ declare createdAt: CreationOptional<Date>;
89
+ declare updatedAt: CreationOptional<Date>;
90
+ }
91
+
92
+ Transaction.init(
93
+ {
44
94
  id: {
45
- type: DataTypes.INTEGER,
46
- autoIncrement: true,
47
- primaryKey: true
95
+ type: DataTypes.INTEGER,
96
+ autoIncrement: true,
97
+ primaryKey: true,
48
98
  },
49
99
 
50
- submitTransactionHash: DataTypes.NUMBER,
51
- submitBlockNumber: DataTypes.NUMBER,
52
-
53
100
  transactionHash: DataTypes.STRING,
54
- action: DataTypes.STRING,
101
+ actionId: DataTypes.STRING,
102
+ vnonce: DataTypes.STRING,
103
+ sourceSender: DataTypes.STRING,
55
104
 
56
- from: DataTypes.STRING,
57
- to: DataTypes.STRING,
105
+ submitChainId: DataTypes.NUMBER,
106
+ submitTransactionHash: DataTypes.STRING,
107
+ submitBlockNumber: DataTypes.NUMBER,
108
+ submitCreatedAt: DataTypes.DATE,
58
109
 
59
110
  sourceChainId: DataTypes.NUMBER,
111
+ sourceDsaId: DataTypes.STRING,
60
112
  sourceTransactionHash: DataTypes.STRING,
61
113
  sourceBlockNumber: DataTypes.NUMBER,
62
- sourceStatus: DataTypes.STRING,
114
+ sourceStatus: {
115
+ type: DataTypes.STRING,
116
+ defaultValue: "pending",
117
+ },
63
118
  sourceErrors: {
64
- type: DataTypes.JSON,
65
- // defaultValue: [],
119
+ type: DataTypes.JSON,
120
+ // defaultValue: [],
121
+ },
122
+ sourceLogs: {
123
+ type: DataTypes.JSON,
124
+ // defaultValue: [],
66
125
  },
67
126
  sourceCreatedAt: {
68
- type: DataTypes.DATE,
69
- defaultValue: Date.now()
127
+ type: DataTypes.DATE,
128
+ defaultValue: Date.now(),
70
129
  },
71
130
  sourceDelayUntil: DataTypes.STRING,
72
131
 
73
132
  targetChainId: DataTypes.NUMBER,
133
+ targetDsaId: DataTypes.STRING,
74
134
  targetTransactionHash: DataTypes.STRING,
75
135
  targetBlockNumber: DataTypes.NUMBER,
76
- targetStatus: DataTypes.STRING,
136
+ targetStatus: {
137
+ type: DataTypes.STRING,
138
+ defaultValue: "pending",
139
+ },
77
140
  targetErrors: {
78
- type: DataTypes.JSON,
79
- // defaultValue: [],
141
+ type: DataTypes.JSON,
142
+ // defaultValue: [],
143
+ },
144
+ targetLogs: {
145
+ type: DataTypes.JSON,
146
+ // defaultValue: [],
80
147
  },
81
148
  targetCreatedAt: DataTypes.DATE,
82
149
  targetDelayUntil: DataTypes.DATE,
83
150
 
84
- submitEvent: DataTypes.JSON,
85
- sourceEvent: DataTypes.JSON,
86
- targetEvent: DataTypes.JSON,
151
+ submitEvent: {
152
+ type: DataTypes.JSON,
153
+ allowNull: false,
154
+ },
87
155
 
88
- metadata: DataTypes.JSON,
156
+ validateEvent: {
157
+ type: DataTypes.JSON,
158
+ allowNull: true,
159
+ },
89
160
 
90
161
  status: {
91
- type: DataTypes.STRING,
92
- defaultValue: 'pending'
162
+ type: DataTypes.STRING,
163
+ defaultValue: "pending",
93
164
  },
94
165
  createdAt: DataTypes.DATE,
95
166
  updatedAt: DataTypes.DATE,
96
- }, { sequelize, tableName: 'transactions' });
167
+ },
168
+ { sequelize, tableName: "transactions" }
169
+ );
@@ -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
+ }
@@ -0,0 +1,118 @@
1
+ import abi from "@/abi";
2
+ import config from "@/config";
3
+ import { addresses } from "@/constants";
4
+ import { Transaction } from "@/db";
5
+ import { InteropX } from "@/typechain";
6
+ import { ChainId } from "@/types";
7
+ import { encodeConnectorMethod, getContract, getRpcProviderUrl } from "@/utils";
8
+ import { ethers } from "ethers";
9
+ import { MetaTransaction, OperationType } from "ethers-multisend";
10
+
11
+ export default async function (transaction: Transaction) {
12
+ const transactions: MetaTransaction[] = [];
13
+ const logs: any[] = [];
14
+
15
+ const {
16
+ position,
17
+ actionId,
18
+ actionIdHashHash,
19
+ sourceSender,
20
+ sourceDsaId,
21
+ targetDsaId,
22
+ sourceChainId,
23
+ targetChainId,
24
+ vnonce,
25
+ metadata,
26
+ } = transaction.submitEvent;
27
+
28
+ const sourceChainProvider = new ethers.providers.JsonRpcProvider(
29
+ getRpcProviderUrl(sourceChainId as ChainId)
30
+ );
31
+ const sourceWallet = new ethers.Wallet(
32
+ config.privateKey,
33
+ sourceChainProvider
34
+ );
35
+ const dsaAddress = addresses[sourceChainId].dsaAddress;
36
+ const sourceUserAddress =
37
+ Number(sourceDsaId) == 0 ? sourceSender : dsaAddress;
38
+ const interopAddress = addresses[sourceChainId].interopX;
39
+ const contract = getContract<InteropX>(
40
+ interopAddress,
41
+ abi.interopX,
42
+ sourceWallet
43
+ );
44
+
45
+ const sourceSpells: any[] = [];
46
+ const commonSpells: any[] = [];
47
+
48
+ for (const withdraw of position.withdraw) {
49
+ let spellData = {
50
+ connector: "AAVE-V2-A",
51
+ method: "payback",
52
+ args: [withdraw.sourceToken, withdraw.amount, "2", "0", "0"],
53
+ };
54
+
55
+ sourceSpells.push({
56
+ connector: spellData.connector,
57
+ data: encodeConnectorMethod(spellData),
58
+ });
59
+
60
+ let spellDataBasicWithdraw = {
61
+ connector: "BASIC-A",
62
+ method: "withdraw",
63
+ args: [withdraw.sourceToken, withdraw.amount, sourceUserAddress, "0", "0"],
64
+ };
65
+
66
+ commonSpells.push({
67
+ connector: spellDataBasicWithdraw.connector,
68
+ data: encodeConnectorMethod(spellDataBasicWithdraw),
69
+ });
70
+ }
71
+
72
+ for (const supply of position.supply) {
73
+ let spellDataWithdraw = {
74
+ connector: "AAVE-V2-A",
75
+ method: "withdraw",
76
+ args: [supply.sourceToken, supply.amount, "0", "0"],
77
+ };
78
+
79
+ sourceSpells.push({
80
+ connector: spellDataWithdraw.connector,
81
+ data: encodeConnectorMethod(spellDataWithdraw),
82
+ });
83
+
84
+ let spellDataBasicWithdraw = {
85
+ connector: "BASIC-A",
86
+ method: "withdraw",
87
+ args: [supply.sourceToken, supply.amount, dsaAddress, "0", "0"],
88
+ };
89
+
90
+ sourceSpells.push({
91
+ connector: spellDataBasicWithdraw.connector,
92
+ data: encodeConnectorMethod(spellDataBasicWithdraw),
93
+ });
94
+ }
95
+
96
+ const { data } = await contract.populateTransaction.sourceAction(
97
+ sourceSpells,
98
+ commonSpells,
99
+ position,
100
+ actionId,
101
+ sourceSender,
102
+ sourceDsaId,
103
+ targetDsaId,
104
+ sourceChainId,
105
+ targetChainId,
106
+ vnonce,
107
+ metadata
108
+ );
109
+
110
+ transactions.push({
111
+ to: interopAddress,
112
+ data: data!,
113
+ value: "0",
114
+ operation: OperationType.Call,
115
+ });
116
+
117
+ return { transactions, logs };
118
+ }
@@ -0,0 +1,13 @@
1
+
2
+
3
+ import { Transaction } from "@/db";
4
+ import { MetaTransaction, OperationType } from "ethers-multisend";
5
+
6
+
7
+ export default async function (transaction: Transaction) {
8
+ const transactions: MetaTransaction[] = [];
9
+ const logs: any[] = [];
10
+
11
+
12
+ return { transactions, logs }
13
+ }
@@ -0,0 +1,5 @@
1
+ import aaveV2 from "./aaveV2"
2
+
3
+ export default {
4
+ 'A:AAVE-V2:AAVE-V2': aaveV2,
5
+ }
@@ -0,0 +1,19 @@
1
+ import { Transaction } from "@/db";
2
+ import { encodeMulti } from "ethers-multisend";
3
+ import actions from "./actions";
4
+
5
+ export const buildGnosisAction = async (transaction: Transaction, type: 'source' | 'target') => {
6
+ // type = type || (transaction.sourceStatus === 'success' ? 'target' : 'source')
7
+
8
+ if (actions.hasOwnProperty(transaction.actionId)) {
9
+
10
+ const { transactions, logs } = await actions[transaction.actionId](transaction, type);
11
+
12
+ return {
13
+ data: encodeMulti(transactions).data,
14
+ logs
15
+ };
16
+ }
17
+
18
+ throw new Error(`Unknown action: ${transaction.actionId}`);
19
+ }
package/src/index.ts CHANGED
@@ -1,22 +1,7 @@
1
- import moduleAlias from 'module-alias';
1
+ import './alias'
2
2
  import expandHomeDir from "expand-home-dir";
3
3
  import fs from 'fs-extra'
4
- moduleAlias.addAliases({
5
- "@/": __dirname + "/",
6
- "@/logger": __dirname + "/logger",
7
- "@/tasks": __dirname + "/tasks",
8
- "@/utils": __dirname + "/utils",
9
- "@/api": __dirname + "/api",
10
- "@/net": __dirname + "/net",
11
- "@/db": __dirname + "/db",
12
- "@/config": __dirname + "/config",
13
- "@/types": __dirname + "/types",
14
- "@/abi": __dirname + "/abi",
15
- "@/constants": __dirname + "/constants",
16
- "@/typechain": __dirname + "/typechain"
17
- })
18
4
 
19
- moduleAlias();
20
5
  import dotenv from "dotenv";
21
6
  import chalk from 'chalk';
22
7
  import { ethers } from "ethers";
@@ -104,7 +89,9 @@ async function main() {
104
89
 
105
90
  const tasks = new Tasks()
106
91
 
107
- tasks.start();
92
+ setTimeout(() => {
93
+ tasks.start();
94
+ }, 10000)
108
95
 
109
96
  startApiServer()
110
97
 
@@ -129,10 +116,12 @@ async function main() {
129
116
  transaction.sourceStatus = payload.data.sourceStatus
130
117
  transaction.sourceTransactionHash = payload.data.sourceTransactionHash
131
118
  transaction.sourceErrors = payload.data.sourceErrors
119
+ transaction.sourceLogs = payload.data.sourceLogs
132
120
 
133
121
  transaction.targetStatus = payload.data.targetStatus
134
122
  transaction.targetTransactionHash = payload.data.targetTransactionHash
135
123
  transaction.targetErrors = payload.data.targetErrors
124
+ transaction.targetLogs = payload.data.targetLogs
136
125
 
137
126
  transaction.status = payload.data.status
138
127