@instadapp/interop-x 0.0.0-dev.8965b57 → 0.0.0-dev.8a9ef54

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 (228) hide show
  1. package/.github/workflows/ci.yml +19 -0
  2. package/dist/package.json +14 -12
  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 -2
  91. package/dist/src/abi/interopX.json +1436 -0
  92. package/dist/src/api/index.js +1 -1
  93. package/dist/src/constants/addresses.js +4 -7
  94. package/dist/src/constants/tokens.js +44 -51
  95. package/dist/src/db/models/transaction.js +12 -10
  96. package/dist/src/gnosis/actions/aaveV2/index.js +11 -0
  97. package/dist/src/gnosis/actions/aaveV2/source.js +62 -0
  98. package/dist/src/gnosis/actions/aaveV2/target.js +8 -0
  99. package/dist/src/gnosis/actions/index.js +2 -2
  100. package/dist/src/gnosis/index.js +3 -3
  101. package/dist/src/index.js +1 -1
  102. package/dist/src/tasks/{InteropXContract/SyncBridgeRequestEvents.js → InteropX/SyncLogSubmitEvents.js} +25 -16
  103. package/dist/src/tasks/Transactions/SyncTransactionStatusTask.js +6 -3
  104. package/dist/src/tasks/index.js +6 -10
  105. package/dist/src/typechain/{InteropXContract.js → InteropX.js} +0 -0
  106. package/dist/src/typechain/factories/InteropX__factory.js +1928 -0
  107. package/dist/src/typechain/factories/index.js +3 -3
  108. package/dist/src/typechain/index.js +3 -3
  109. package/dist/src/utils/index.js +87 -33
  110. package/package.json +14 -12
  111. package/src/abi/connectors/index.ts +14 -0
  112. package/src/abi/connectors/v1/aave.ts +147 -0
  113. package/src/abi/connectors/v1/aave_claim.ts +3 -0
  114. package/src/abi/connectors/v1/aave_migrate.ts +108 -0
  115. package/src/abi/connectors/v1/aave_polygon_migrate.ts +109 -0
  116. package/src/abi/connectors/v1/aave_stake.ts +3 -0
  117. package/src/abi/connectors/v1/aave_v1_import.ts +53 -0
  118. package/src/abi/connectors/v1/aave_v2.ts +229 -0
  119. package/src/abi/connectors/v1/aave_v2_import.ts +58 -0
  120. package/src/abi/connectors/v1/authority.ts +99 -0
  121. package/src/abi/connectors/v1/basic.ts +135 -0
  122. package/src/abi/connectors/v1/chi.ts +35 -0
  123. package/src/abi/connectors/v1/comp.ts +3 -0
  124. package/src/abi/connectors/v1/compound.ts +3 -0
  125. package/src/abi/connectors/v1/compoundImport.ts +68 -0
  126. package/src/abi/connectors/v1/compoundImport_v2.ts +3 -0
  127. package/src/abi/connectors/v1/compound_old.ts +447 -0
  128. package/src/abi/connectors/v1/curve.ts +139 -0
  129. package/src/abi/connectors/v1/curve_claim.ts +62 -0
  130. package/src/abi/connectors/v1/curve_gauge.ts +157 -0
  131. package/src/abi/connectors/v1/curve_sbtc.ts +139 -0
  132. package/src/abi/connectors/v1/curve_susd.ts +139 -0
  133. package/src/abi/connectors/v1/curve_three.ts +78 -0
  134. package/src/abi/connectors/v1/curve_y.ts +139 -0
  135. package/src/abi/connectors/v1/dsa_migrate_v1_to_v2.ts +3 -0
  136. package/src/abi/connectors/v1/dydx.ts +147 -0
  137. package/src/abi/connectors/v1/dydx_flash.ts +51 -0
  138. package/src/abi/connectors/v1/fee.ts +49 -0
  139. package/src/abi/connectors/v1/gelato.ts +1137 -0
  140. package/src/abi/connectors/v1/index.ts +42 -0
  141. package/src/abi/connectors/v1/instapool.ts +438 -0
  142. package/src/abi/connectors/v1/instapool_v2.ts +125 -0
  143. package/src/abi/connectors/v1/kyber.ts +116 -0
  144. package/src/abi/connectors/v1/maker.ts +479 -0
  145. package/src/abi/connectors/v1/maker_old.ts +299 -0
  146. package/src/abi/connectors/v1/math.ts +42 -0
  147. package/src/abi/connectors/v1/migrate.ts +45 -0
  148. package/src/abi/connectors/v1/oasis.ts +197 -0
  149. package/src/abi/connectors/v1/oneInch.ts +159 -0
  150. package/src/abi/connectors/v1/polygon_bridge.ts +3 -0
  151. package/src/abi/connectors/v1/refinance.ts +3 -0
  152. package/src/abi/connectors/v1/staking.ts +219 -0
  153. package/src/abi/connectors/v1/swerve.ts +178 -0
  154. package/src/abi/connectors/v1/uniswap.ts +297 -0
  155. package/src/abi/connectors/v2/1INCH-A.ts +3 -0
  156. package/src/abi/connectors/v2/1INCH-B.ts +3 -0
  157. package/src/abi/connectors/v2/AAVE-CLAIM-A.ts +3 -0
  158. package/src/abi/connectors/v2/AAVE-CLAIM-B.ts +165 -0
  159. package/src/abi/connectors/v2/AAVE-STAKE-A.ts +3 -0
  160. package/src/abi/connectors/v2/AAVE-V1-A.ts +130 -0
  161. package/src/abi/connectors/v2/AAVE-V1-IMPORT-A.ts +3 -0
  162. package/src/abi/connectors/v2/AAVE-V2-A.ts +229 -0
  163. package/src/abi/connectors/v2/AAVE-V2-IMPORT-A.ts +3 -0
  164. package/src/abi/connectors/v2/AAVE-V2-IMPORT-B.ts +224 -0
  165. package/src/abi/connectors/v2/AUTHORITY-A.ts +99 -0
  166. package/src/abi/connectors/v2/B-COMPOUND-A.ts +3 -0
  167. package/src/abi/connectors/v2/B-LIQUITY-A.ts +3 -0
  168. package/src/abi/connectors/v2/B-MAKERDAO-A.ts +3 -0
  169. package/src/abi/connectors/v2/BASIC-A.ts +135 -0
  170. package/src/abi/connectors/v2/BASIC-B.ts +3 -0
  171. package/src/abi/connectors/v2/BASIC-C.ts +3 -0
  172. package/src/abi/connectors/v2/COMP-A.ts +3 -0
  173. package/src/abi/connectors/v2/COMPOUND-A.ts +3 -0
  174. package/src/abi/connectors/v2/COMPOUND-IMPORT-A.ts +3 -0
  175. package/src/abi/connectors/v2/COMPOUND-IMPORT-B.ts +194 -0
  176. package/src/abi/connectors/v2/G-UNISWAP-A.ts +3 -0
  177. package/src/abi/connectors/v2/GELATO-AAVE-A.ts +3 -0
  178. package/src/abi/connectors/v2/INST-A.ts +3 -0
  179. package/src/abi/connectors/v2/INST-LM-A.ts +3 -0
  180. package/src/abi/connectors/v2/INST-STAKING-A.ts +3 -0
  181. package/src/abi/connectors/v2/INST-STAKING-B.ts +3 -0
  182. package/src/abi/connectors/v2/INSTAPOOL-A.ts +3 -0
  183. package/src/abi/connectors/v2/LIQUITY-A.ts +3 -0
  184. package/src/abi/connectors/v2/MAKERDAO-A.ts +3 -0
  185. package/src/abi/connectors/v2/MAKERDAO-CLAIM-A.ts +135 -0
  186. package/src/abi/connectors/v2/PARASWAP-A.ts +3 -0
  187. package/src/abi/connectors/v2/POLYGON-BRIDGE-A.ts +3 -0
  188. package/src/abi/connectors/v2/REFINANCE-A.ts +3 -0
  189. package/src/abi/connectors/v2/REFLEXER-A.ts +3 -0
  190. package/src/abi/connectors/v2/STAKE-ERC20-A.ts +3 -0
  191. package/src/abi/connectors/v2/UNISWAP-A.ts +297 -0
  192. package/src/abi/connectors/v2/UNISWAP-V2-A.ts +3 -0
  193. package/src/abi/connectors/v2/UNISWAP-V3-A.ts +3 -0
  194. package/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.ts +3 -0
  195. package/src/abi/connectors/v2/WETH-A.ts +3 -0
  196. package/src/abi/connectors/v2/YEARN-VAULT-A.ts +3 -0
  197. package/src/abi/connectors/v2/index.ts +87 -0
  198. package/src/abi/index.ts +7 -5
  199. package/src/abi/interopX.json +1436 -0
  200. package/src/api/index.ts +1 -1
  201. package/src/constants/addresses.ts +5 -8
  202. package/src/constants/tokens.ts +44 -51
  203. package/src/db/models/transaction.ts +31 -30
  204. package/src/gnosis/actions/aaveV2/index.ts +9 -0
  205. package/src/gnosis/actions/aaveV2/source.ts +104 -0
  206. package/src/gnosis/actions/aaveV2/target.ts +13 -0
  207. package/src/gnosis/actions/index.ts +2 -2
  208. package/src/gnosis/index.ts +3 -3
  209. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +138 -0
  210. package/src/tasks/Transactions/SyncTransactionStatusTask.ts +6 -3
  211. package/src/tasks/index.ts +5 -12
  212. package/src/typechain/InteropX.ts +1216 -0
  213. package/src/typechain/factories/InteropX__factory.ts +1932 -0
  214. package/src/typechain/factories/index.ts +1 -1
  215. package/src/typechain/index.ts +2 -2
  216. package/src/utils/index.ts +222 -97
  217. package/dist/src/abi/interopXContract.json +0 -391
  218. package/dist/src/gnosis/actions/withdraw/index.js +0 -55
  219. package/dist/src/tasks/InteropXContract/ProcessBridgeRequestEvents.js +0 -152
  220. package/dist/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.js +0 -89
  221. package/dist/src/typechain/factories/InteropXContract__factory.js +0 -526
  222. package/src/abi/interopXContract.json +0 -391
  223. package/src/gnosis/actions/withdraw/index.ts +0 -76
  224. package/src/tasks/InteropXContract/ProcessBridgeRequestEvents.ts +0 -216
  225. package/src/tasks/InteropXContract/SyncBridgeRequestEvents.ts +0 -114
  226. package/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.ts +0 -120
  227. package/src/typechain/InteropXContract.ts +0 -524
  228. package/src/typechain/factories/InteropXContract__factory.ts +0 -533
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
- interopXContract: '',
6
- },
7
2
  137: {
8
3
  gnosisSafe: '0x5635d2910e51da33d9DC0422c893CF4F28B69A25',
9
4
  multisend: '0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761',
10
- interopXContract: '0x2189741c8cAc1cf51570932817A7d6390646C80e',
5
+ interopX: '0xDB6083df37C5F224a3dF84A4B5f9fB60b6c8670a',
6
+ dsaAddress: '0x9Fbd453a8e7a158510fBae5D9935958507cf4b19',
11
7
  },
12
8
  43114: {
13
9
  gnosisSafe: '0x31d7a5194Fe60AC209Cf1Ce2d539C9A60662Ed6b',
14
10
  multisend: '0x998739BFdAAdde7C933B942a68053933098f9EDa',
15
- interopXContract: '0x1867DF97Ec24bb0bbD4AD464F0Be9C6713422EAE',
11
+ interopX: '0xd61f55C6d9deD35B9d13243b816c4BcC1d78592b',
12
+ dsaAddress: '0xFcB7d826E32081c4799de2f83b47b49df600dc8c',
16
13
  }
17
- }
14
+ } as Record<number, { gnosisSafe: string, multisend: string, interopX: string, dsaAddress: string }>
@@ -1,48 +1,48 @@
1
1
  export const tokens = {
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
- ],
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
+ // ],
46
46
  137: [
47
47
  {
48
48
  aliases: ['eth', 'weth'],
@@ -79,13 +79,6 @@ export const tokens = {
79
79
  address: "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",
80
80
  decimals: 8,
81
81
  },
82
- {
83
- aliases: ['avax'],
84
- symbol: "AVAX",
85
- name: "Avalanche Token",
86
- address: "0x2C89bbc92BD86F8075d1DEcc58C7F4E0107f286b",
87
- decimals: 18,
88
- },
89
82
  ],
90
83
  43114: [
91
84
  {
@@ -1,7 +1,7 @@
1
1
  import { sequelize } from '@/db/sequelize'
2
2
  import { CreationOptional, InferAttributes, InferCreationAttributes, Model, DataTypes } from 'sequelize';
3
3
 
4
- export interface IPositionTokenInfo{
4
+ export interface IPositionTokenInfo {
5
5
  amount: string;
6
6
  sourceToken: string;
7
7
  targetToken: string;
@@ -16,14 +16,17 @@ export class Transaction extends Model<InferAttributes<Transaction>, InferCreati
16
16
  declare id: CreationOptional<number>;
17
17
 
18
18
  declare transactionHash: string;
19
-
20
- declare action: string;
21
- declare bridger: string;
22
- declare requestTransactionHash: string;
19
+ declare vnonce: string;
20
+ declare actionId: string;
21
+ declare sourceSender: string;
23
22
 
24
- declare requestBlockNumber: number;
23
+ declare submitChainId: number;
24
+ declare submitTransactionHash: string;
25
+ declare submitBlockNumber: number;
26
+ declare submitCreatedAt: Date;
25
27
 
26
28
  declare sourceChainId: number;
29
+ declare sourceDsaId: string;
27
30
  declare sourceTransactionHash: CreationOptional<string>;
28
31
  declare sourceBlockNumber: CreationOptional<number>;
29
32
  declare sourceStatus: CreationOptional<string>;
@@ -33,6 +36,7 @@ export class Transaction extends Model<InferAttributes<Transaction>, InferCreati
33
36
  declare sourceDelayUntil: CreationOptional<Date>;
34
37
 
35
38
  declare targetChainId: number;
39
+ declare targetDsaId: string;
36
40
  declare targetTransactionHash: CreationOptional<string>;
37
41
  declare targetBlockNumber: CreationOptional<number>;
38
42
  declare targetStatus: CreationOptional<string>;
@@ -41,23 +45,18 @@ export class Transaction extends Model<InferAttributes<Transaction>, InferCreati
41
45
  declare targetCreatedAt: CreationOptional<Date>;
42
46
  declare targetDelayUntil: CreationOptional<Date>;
43
47
 
44
- declare requestEvent: {
45
- bridger: string;
46
- metadata: string;
48
+ declare submitEvent: {
47
49
  position: IPosition;
50
+ actionId: string;
51
+ actionIdHashHash: string;
52
+ sourceSender: string;
53
+ sourceDsaId: string;
54
+ targetDsaId: string;
48
55
  sourceChainId: number;
49
56
  targetChainId: number;
50
- };
51
- declare requestSentEvent: CreationOptional<{
52
- bridger: string;
57
+ vnonce: string;
53
58
  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>;
59
+ };
61
60
 
62
61
  declare status: CreationOptional<string>;
63
62
 
@@ -72,19 +71,23 @@ Transaction.init({
72
71
  primaryKey: true
73
72
  },
74
73
 
75
- requestTransactionHash: DataTypes.NUMBER,
76
- requestBlockNumber: DataTypes.NUMBER,
77
-
78
74
  transactionHash: DataTypes.STRING,
79
- action: DataTypes.STRING,
80
- bridger: DataTypes.STRING,
75
+ actionId: DataTypes.STRING,
76
+ vnonce: DataTypes.STRING,
77
+ sourceSender: DataTypes.STRING,
78
+
79
+ submitChainId: DataTypes.NUMBER,
80
+ submitTransactionHash: DataTypes.STRING,
81
+ submitBlockNumber: DataTypes.NUMBER,
82
+ submitCreatedAt: DataTypes.DATE,
81
83
 
82
84
  sourceChainId: DataTypes.NUMBER,
85
+ sourceDsaId: DataTypes.STRING,
83
86
  sourceTransactionHash: DataTypes.STRING,
84
87
  sourceBlockNumber: DataTypes.NUMBER,
85
88
  sourceStatus: {
86
89
  type: DataTypes.STRING,
87
- defaultValue: 'uninitialised'
90
+ defaultValue: 'pending'
88
91
  },
89
92
  sourceErrors: {
90
93
  type: DataTypes.JSON,
@@ -101,11 +104,12 @@ Transaction.init({
101
104
  sourceDelayUntil: DataTypes.STRING,
102
105
 
103
106
  targetChainId: DataTypes.NUMBER,
107
+ targetDsaId: DataTypes.STRING,
104
108
  targetTransactionHash: DataTypes.STRING,
105
109
  targetBlockNumber: DataTypes.NUMBER,
106
110
  targetStatus: {
107
111
  type: DataTypes.STRING,
108
- defaultValue: 'uninitialised'
112
+ defaultValue: 'pending'
109
113
  },
110
114
  targetErrors: {
111
115
  type: DataTypes.JSON,
@@ -118,13 +122,10 @@ Transaction.init({
118
122
  targetCreatedAt: DataTypes.DATE,
119
123
  targetDelayUntil: DataTypes.DATE,
120
124
 
121
- requestEvent: {
125
+ submitEvent: {
122
126
  type: DataTypes.JSON,
123
127
  allowNull: false
124
128
  },
125
- requestSentEvent: DataTypes.JSON,
126
- committedEvent: DataTypes.JSON,
127
- completedEvent: DataTypes.JSON,
128
129
 
129
130
  status: {
130
131
  type: DataTypes.STRING,
@@ -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,104 @@
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 interopAddress = addresses[sourceChainId].interopX;
36
+ const contract = getContract<InteropX>(
37
+ interopAddress,
38
+ abi.interopX,
39
+ sourceWallet
40
+ );
41
+
42
+ const sourceSpells: any[] = [];
43
+ const commonSpells = [];
44
+
45
+ for (const withdraw of position.withdraw) {
46
+ let spellData = {
47
+ connector: "AAVE-V2-A",
48
+ method: "payback",
49
+ args: [withdraw.sourceToken, withdraw.amount, "2", "0", "0"],
50
+ };
51
+
52
+ sourceSpells.push({
53
+ connector: spellData.method,
54
+ data: encodeConnectorMethod(spellData),
55
+ });
56
+ }
57
+
58
+ for (const supply of position.supply) {
59
+ let spellDataWithdraw = {
60
+ connector: "AAVE-V2-A",
61
+ method: "withdraw",
62
+ args: [supply.sourceToken, supply.amount, "0", "0"],
63
+ };
64
+
65
+ sourceSpells.push({
66
+ connector: spellDataWithdraw.method,
67
+ data: encodeConnectorMethod(spellDataWithdraw),
68
+ });
69
+
70
+ let spellDataBasicWithdraw = {
71
+ connector: "BASIC-A",
72
+ method: "withdraw",
73
+ args: [supply.sourceToken, supply.amount, interopAddress, "0", "0"],
74
+ };
75
+
76
+ sourceSpells.push({
77
+ connector: spellDataBasicWithdraw.method,
78
+ data: encodeConnectorMethod(spellDataBasicWithdraw),
79
+ });
80
+ }
81
+
82
+ const { data } = await contract.populateTransaction.sourceAction(
83
+ sourceSpells,
84
+ commonSpells,
85
+ position,
86
+ actionId,
87
+ sourceSender,
88
+ sourceDsaId,
89
+ targetDsaId,
90
+ sourceChainId,
91
+ targetChainId,
92
+ vnonce,
93
+ metadata
94
+ );
95
+
96
+ transactions.push({
97
+ to: interopAddress,
98
+ data: data!,
99
+ value: "0",
100
+ operation: OperationType.Call,
101
+ });
102
+
103
+ return { transactions, logs };
104
+ }
@@ -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
+ }
@@ -1,5 +1,5 @@
1
- import withdraw from "./withdraw"
1
+ import aaveV2 from "./aaveV2"
2
2
 
3
3
  export default {
4
- withdraw,
4
+ 'AAVE-V2:AAVE-V2': aaveV2,
5
5
  }
@@ -5,9 +5,9 @@ import actions from "./actions";
5
5
  export const buildGnosisAction = async (transaction: Transaction, type: 'source' | 'target') => {
6
6
  // type = type || (transaction.sourceStatus === 'success' ? 'target' : 'source')
7
7
 
8
- if (actions.hasOwnProperty(transaction.action)) {
8
+ if (actions.hasOwnProperty(transaction.actionId)) {
9
9
 
10
- const { transactions, logs } = await actions[transaction.action](transaction, type);
10
+ const { transactions, logs } = await actions[transaction.actionId](transaction, type);
11
11
 
12
12
  return {
13
13
  data: encodeMulti(transactions).data,
@@ -15,5 +15,5 @@ export const buildGnosisAction = async (transaction: Transaction, type: 'source'
15
15
  };
16
16
  }
17
17
 
18
- throw new Error(`Unknown action: ${transaction.action}`);
18
+ throw new Error(`Unknown action: ${transaction.actionId}`);
19
19
  }
@@ -0,0 +1,138 @@
1
+ import { BaseTask } from "../BaseTask";
2
+ import Logger from "@/logger";
3
+ import { ethers } from "ethers";
4
+ import abi from "@/abi";
5
+ import { Transaction } from "@/db";
6
+ import {
7
+ generateInteropTransactionHash,
8
+ getContract,
9
+ getRpcProviderUrl,
10
+ } from "@/utils";
11
+ import { addresses } from "@/constants";
12
+ import { ChainId } from "@/types";
13
+ import config from "@/config";
14
+ import { InteropX } from "@/typechain";
15
+
16
+ class SyncLogSubmitEvents extends BaseTask {
17
+ contractAddress: string;
18
+ provider: ethers.providers.JsonRpcProvider;
19
+ contract: InteropX;
20
+ chainId: ChainId;
21
+
22
+ constructor({ chainId }: { chainId: ChainId }) {
23
+ super({
24
+ logger: new Logger("InteropX::SyncLogSubmitEvents"),
25
+ });
26
+ this.chainId = chainId;
27
+ }
28
+
29
+ async pollHandler() {
30
+ const currentBlock = await this.provider.getBlockNumber();
31
+
32
+ const events = await this.contract.queryFilter(
33
+ this.contract.filters.LogSubmit(),
34
+ 29429078,
35
+ 29429078
36
+ );
37
+
38
+ let processedEvents = 0;
39
+
40
+ for (const event of events) {
41
+ try {
42
+ if (!event.args) {
43
+ continue;
44
+ }
45
+
46
+ const {
47
+ position,
48
+ actionId,
49
+ actionIdHashHash,
50
+ sourceSender,
51
+ sourceDsaId,
52
+ targetDsaId,
53
+ sourceChainId,
54
+ targetChainId,
55
+ vnonce,
56
+ metadata,
57
+ } = event.args;
58
+
59
+ const uniqueIdentifier = {
60
+ actionId,
61
+ vnonce: vnonce.toString(),
62
+ sourceSender: sourceSender.toString(),
63
+ sourceChainId: sourceChainId.toNumber(),
64
+ targetChainId: targetChainId.toNumber(),
65
+ sourceDsaId: sourceDsaId.toString(),
66
+ targetDsaId: targetDsaId.toString(),
67
+ };
68
+
69
+ let transactionHash = generateInteropTransactionHash(uniqueIdentifier);
70
+
71
+ const transaction = await Transaction.findOne({
72
+ where: { transactionHash },
73
+ });
74
+
75
+ if (transaction) {
76
+ continue;
77
+ }
78
+
79
+ await Transaction.create({
80
+ transactionHash,
81
+ ...uniqueIdentifier,
82
+ submitChainId: this.chainId,
83
+ submitTransactionHash: event.transactionHash,
84
+ submitBlockNumber: event.blockNumber,
85
+ submitCreatedAt: new Date(),
86
+ submitEvent: {
87
+ actionId,
88
+ actionIdHashHash,
89
+ vnonce: vnonce.toString(),
90
+ position: {
91
+ withdraw: position.withdraw.map((v) => ({
92
+ sourceToken: v.sourceToken,
93
+ targetToken: v.targetToken,
94
+ amount: v.amount.toString(),
95
+ })),
96
+ supply: position.supply.map((v) => ({
97
+ sourceToken: v.sourceToken,
98
+ targetToken: v.targetToken,
99
+ amount: v.amount.toString(),
100
+ })),
101
+ },
102
+ sourceChainId: sourceChainId.toNumber(),
103
+ targetChainId: targetChainId.toNumber(),
104
+ sourceSender,
105
+ sourceDsaId: sourceDsaId.toString(),
106
+ targetDsaId: targetDsaId.toString(),
107
+ metadata,
108
+ },
109
+ });
110
+
111
+ this.logger.info(`New InteropX tranaction: ${transactionHash} `);
112
+ } catch (error) {
113
+ this.logger.error(error);
114
+ }
115
+ }
116
+
117
+ if (processedEvents > 0)
118
+ this.logger.info(`${processedEvents} events processed`);
119
+ }
120
+
121
+ async start(): Promise<void> {
122
+ this.contractAddress = addresses[this.chainId].interopX;
123
+
124
+ this.provider = new ethers.providers.JsonRpcProvider(
125
+ getRpcProviderUrl(this.chainId)
126
+ );
127
+
128
+ this.contract = getContract<InteropX>(
129
+ this.contractAddress,
130
+ abi.interopX,
131
+ new ethers.Wallet(config.privateKey!, this.provider)
132
+ );
133
+
134
+ await super.start();
135
+ }
136
+ }
137
+
138
+ export default SyncLogSubmitEvents;
@@ -20,14 +20,17 @@ class SyncTransactionStatusTask extends BaseTask {
20
20
  const leadNode = peerPool.getLeadPeer();
21
21
 
22
22
  if (!leadNode) {
23
+ console.log("No lead node found");
23
24
  return;
24
25
  }
25
26
 
26
27
  const transaction = await Transaction.findOne({
27
28
  where: {
28
- status: 'pending',
29
- sourceCreatedAt: {
30
- [Op.gte]: new Date(Date.now() - 60 * 60 * 1000),
29
+ status: {
30
+ [Op.notIn] : ['success', 'failed'],
31
+ },
32
+ createdAt: {
33
+ [Op.lt]: new Date(Date.now() - 15 * 60 * 1000),
31
34
  },
32
35
  }
33
36
  })
@@ -5,9 +5,7 @@ import SyncTransactionStatusTask from "./Transactions/SyncTransactionStatusTask"
5
5
 
6
6
  import AutoUpdateTask from "./AutoUpdateTask";
7
7
 
8
- import SyncBridgeRequestEvents from "./InteropXContract/SyncBridgeRequestEvents";
9
- import ProccessBridgeRequestEvents from "./InteropXContract/ProcessBridgeRequestEvents";
10
- import SyncBridgeRequestSentEvents from "./InteropXContract/SyncBridgeRequestSentEvents";
8
+ import SyncLogSubmitEvents from "./InteropX/SyncLogSubmitEvents";
11
9
 
12
10
  export class Tasks {
13
11
 
@@ -15,16 +13,11 @@ export class Tasks {
15
13
  // new SyncTransactionStatusTask(),
16
14
  new AutoUpdateTask(),
17
15
 
18
- // InteropXContract
16
+ // InteropX
17
+ new SyncLogSubmitEvents({ chainId: 137 }),
18
+ new SyncLogSubmitEvents({ chainId: 43114 }),
19
19
 
20
- new SyncBridgeRequestEvents({ chainId: 137 }),
21
- new SyncBridgeRequestEvents({ chainId: 43114 }),
22
-
23
- new SyncBridgeRequestSentEvents({ chainId: 137 }),
24
- new SyncBridgeRequestSentEvents({ chainId: 43114 }),
25
-
26
- new ProccessBridgeRequestEvents({ chainId: 137 }),
27
- new ProccessBridgeRequestEvents({ chainId: 43114 }),
20
+ new SyncTransactionStatusTask(),
28
21
  ];
29
22
 
30
23
  async start() {