@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.
- package/.github/workflows/ci.yml +19 -0
- package/dist/package.json +14 -12
- package/dist/src/abi/connectors/index.js +36 -0
- package/dist/src/abi/connectors/v1/aave.js +148 -0
- package/dist/src/abi/connectors/v1/aave_claim.js +4 -0
- package/dist/src/abi/connectors/v1/aave_migrate.js +109 -0
- package/dist/src/abi/connectors/v1/aave_polygon_migrate.js +110 -0
- package/dist/src/abi/connectors/v1/aave_stake.js +4 -0
- package/dist/src/abi/connectors/v1/aave_v1_import.js +54 -0
- package/dist/src/abi/connectors/v1/aave_v2.js +230 -0
- package/dist/src/abi/connectors/v1/aave_v2_import.js +59 -0
- package/dist/src/abi/connectors/v1/authority.js +100 -0
- package/dist/src/abi/connectors/v1/basic.js +136 -0
- package/dist/src/abi/connectors/v1/chi.js +36 -0
- package/dist/src/abi/connectors/v1/comp.js +4 -0
- package/dist/src/abi/connectors/v1/compound.js +4 -0
- package/dist/src/abi/connectors/v1/compoundImport.js +69 -0
- package/dist/src/abi/connectors/v1/compoundImport_v2.js +4 -0
- package/dist/src/abi/connectors/v1/compound_old.js +448 -0
- package/dist/src/abi/connectors/v1/curve.js +140 -0
- package/dist/src/abi/connectors/v1/curve_claim.js +63 -0
- package/dist/src/abi/connectors/v1/curve_gauge.js +158 -0
- package/dist/src/abi/connectors/v1/curve_sbtc.js +140 -0
- package/dist/src/abi/connectors/v1/curve_susd.js +140 -0
- package/dist/src/abi/connectors/v1/curve_three.js +79 -0
- package/dist/src/abi/connectors/v1/curve_y.js +140 -0
- package/dist/src/abi/connectors/v1/dsa_migrate_v1_to_v2.js +4 -0
- package/dist/src/abi/connectors/v1/dydx.js +148 -0
- package/dist/src/abi/connectors/v1/dydx_flash.js +52 -0
- package/dist/src/abi/connectors/v1/fee.js +50 -0
- package/dist/src/abi/connectors/v1/gelato.js +1138 -0
- package/dist/src/abi/connectors/v1/index.js +58 -0
- package/dist/src/abi/connectors/v1/instapool.js +439 -0
- package/dist/src/abi/connectors/v1/instapool_v2.js +126 -0
- package/dist/src/abi/connectors/v1/kyber.js +117 -0
- package/dist/src/abi/connectors/v1/maker.js +480 -0
- package/dist/src/abi/connectors/v1/maker_old.js +300 -0
- package/dist/src/abi/connectors/v1/math.js +43 -0
- package/dist/src/abi/connectors/v1/migrate.js +46 -0
- package/dist/src/abi/connectors/v1/oasis.js +198 -0
- package/dist/src/abi/connectors/v1/oneInch.js +160 -0
- package/dist/src/abi/connectors/v1/polygon_bridge.js +4 -0
- package/dist/src/abi/connectors/v1/refinance.js +4 -0
- package/dist/src/abi/connectors/v1/staking.js +220 -0
- package/dist/src/abi/connectors/v1/swerve.js +179 -0
- package/dist/src/abi/connectors/v1/uniswap.js +297 -0
- package/dist/src/abi/connectors/v2/1INCH-A.js +4 -0
- package/dist/src/abi/connectors/v2/1INCH-B.js +4 -0
- package/dist/src/abi/connectors/v2/AAVE-CLAIM-A.js +4 -0
- package/dist/src/abi/connectors/v2/AAVE-CLAIM-B.js +166 -0
- package/dist/src/abi/connectors/v2/AAVE-STAKE-A.js +4 -0
- package/dist/src/abi/connectors/v2/AAVE-V1-A.js +130 -0
- package/dist/src/abi/connectors/v2/AAVE-V1-IMPORT-A.js +4 -0
- package/dist/src/abi/connectors/v2/AAVE-V2-A.js +230 -0
- package/dist/src/abi/connectors/v2/AAVE-V2-IMPORT-A.js +4 -0
- package/dist/src/abi/connectors/v2/AAVE-V2-IMPORT-B.js +225 -0
- package/dist/src/abi/connectors/v2/AUTHORITY-A.js +100 -0
- package/dist/src/abi/connectors/v2/B-COMPOUND-A.js +4 -0
- package/dist/src/abi/connectors/v2/B-LIQUITY-A.js +4 -0
- package/dist/src/abi/connectors/v2/B-MAKERDAO-A.js +4 -0
- package/dist/src/abi/connectors/v2/BASIC-A.js +136 -0
- package/dist/src/abi/connectors/v2/BASIC-B.js +4 -0
- package/dist/src/abi/connectors/v2/BASIC-C.js +4 -0
- package/dist/src/abi/connectors/v2/COMP-A.js +4 -0
- package/dist/src/abi/connectors/v2/COMPOUND-A.js +4 -0
- package/dist/src/abi/connectors/v2/COMPOUND-IMPORT-A.js +4 -0
- package/dist/src/abi/connectors/v2/COMPOUND-IMPORT-B.js +195 -0
- package/dist/src/abi/connectors/v2/G-UNISWAP-A.js +4 -0
- package/dist/src/abi/connectors/v2/GELATO-AAVE-A.js +4 -0
- package/dist/src/abi/connectors/v2/INST-A.js +4 -0
- package/dist/src/abi/connectors/v2/INST-LM-A.js +4 -0
- package/dist/src/abi/connectors/v2/INST-STAKING-A.js +4 -0
- package/dist/src/abi/connectors/v2/INST-STAKING-B.js +4 -0
- package/dist/src/abi/connectors/v2/INSTAPOOL-A.js +4 -0
- package/dist/src/abi/connectors/v2/LIQUITY-A.js +4 -0
- package/dist/src/abi/connectors/v2/MAKERDAO-A.js +4 -0
- package/dist/src/abi/connectors/v2/MAKERDAO-CLAIM-A.js +136 -0
- package/dist/src/abi/connectors/v2/PARASWAP-A.js +4 -0
- package/dist/src/abi/connectors/v2/POLYGON-BRIDGE-A.js +4 -0
- package/dist/src/abi/connectors/v2/REFINANCE-A.js +4 -0
- package/dist/src/abi/connectors/v2/REFLEXER-A.js +4 -0
- package/dist/src/abi/connectors/v2/STAKE-ERC20-A.js +4 -0
- package/dist/src/abi/connectors/v2/UNISWAP-A.js +297 -0
- package/dist/src/abi/connectors/v2/UNISWAP-V2-A.js +4 -0
- package/dist/src/abi/connectors/v2/UNISWAP-V3-A.js +4 -0
- package/dist/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.js +4 -0
- package/dist/src/abi/connectors/v2/WETH-A.js +4 -0
- package/dist/src/abi/connectors/v2/YEARN-VAULT-A.js +4 -0
- package/dist/src/abi/connectors/v2/index.js +89 -0
- package/dist/src/abi/index.js +4 -2
- package/dist/src/abi/interopX.json +1436 -0
- package/dist/src/api/index.js +1 -1
- package/dist/src/constants/addresses.js +4 -7
- package/dist/src/constants/tokens.js +44 -51
- package/dist/src/db/models/transaction.js +12 -10
- package/dist/src/gnosis/actions/aaveV2/index.js +11 -0
- package/dist/src/gnosis/actions/aaveV2/source.js +62 -0
- package/dist/src/gnosis/actions/aaveV2/target.js +8 -0
- package/dist/src/gnosis/actions/index.js +2 -2
- package/dist/src/gnosis/index.js +3 -3
- package/dist/src/index.js +1 -1
- package/dist/src/tasks/{InteropXContract/SyncBridgeRequestEvents.js → InteropX/SyncLogSubmitEvents.js} +25 -16
- package/dist/src/tasks/Transactions/SyncTransactionStatusTask.js +6 -3
- package/dist/src/tasks/index.js +6 -10
- package/dist/src/typechain/{InteropXContract.js → InteropX.js} +0 -0
- package/dist/src/typechain/factories/InteropX__factory.js +1928 -0
- package/dist/src/typechain/factories/index.js +3 -3
- package/dist/src/typechain/index.js +3 -3
- package/dist/src/utils/index.js +87 -33
- package/package.json +14 -12
- package/src/abi/connectors/index.ts +14 -0
- package/src/abi/connectors/v1/aave.ts +147 -0
- package/src/abi/connectors/v1/aave_claim.ts +3 -0
- package/src/abi/connectors/v1/aave_migrate.ts +108 -0
- package/src/abi/connectors/v1/aave_polygon_migrate.ts +109 -0
- package/src/abi/connectors/v1/aave_stake.ts +3 -0
- package/src/abi/connectors/v1/aave_v1_import.ts +53 -0
- package/src/abi/connectors/v1/aave_v2.ts +229 -0
- package/src/abi/connectors/v1/aave_v2_import.ts +58 -0
- package/src/abi/connectors/v1/authority.ts +99 -0
- package/src/abi/connectors/v1/basic.ts +135 -0
- package/src/abi/connectors/v1/chi.ts +35 -0
- package/src/abi/connectors/v1/comp.ts +3 -0
- package/src/abi/connectors/v1/compound.ts +3 -0
- package/src/abi/connectors/v1/compoundImport.ts +68 -0
- package/src/abi/connectors/v1/compoundImport_v2.ts +3 -0
- package/src/abi/connectors/v1/compound_old.ts +447 -0
- package/src/abi/connectors/v1/curve.ts +139 -0
- package/src/abi/connectors/v1/curve_claim.ts +62 -0
- package/src/abi/connectors/v1/curve_gauge.ts +157 -0
- package/src/abi/connectors/v1/curve_sbtc.ts +139 -0
- package/src/abi/connectors/v1/curve_susd.ts +139 -0
- package/src/abi/connectors/v1/curve_three.ts +78 -0
- package/src/abi/connectors/v1/curve_y.ts +139 -0
- package/src/abi/connectors/v1/dsa_migrate_v1_to_v2.ts +3 -0
- package/src/abi/connectors/v1/dydx.ts +147 -0
- package/src/abi/connectors/v1/dydx_flash.ts +51 -0
- package/src/abi/connectors/v1/fee.ts +49 -0
- package/src/abi/connectors/v1/gelato.ts +1137 -0
- package/src/abi/connectors/v1/index.ts +42 -0
- package/src/abi/connectors/v1/instapool.ts +438 -0
- package/src/abi/connectors/v1/instapool_v2.ts +125 -0
- package/src/abi/connectors/v1/kyber.ts +116 -0
- package/src/abi/connectors/v1/maker.ts +479 -0
- package/src/abi/connectors/v1/maker_old.ts +299 -0
- package/src/abi/connectors/v1/math.ts +42 -0
- package/src/abi/connectors/v1/migrate.ts +45 -0
- package/src/abi/connectors/v1/oasis.ts +197 -0
- package/src/abi/connectors/v1/oneInch.ts +159 -0
- package/src/abi/connectors/v1/polygon_bridge.ts +3 -0
- package/src/abi/connectors/v1/refinance.ts +3 -0
- package/src/abi/connectors/v1/staking.ts +219 -0
- package/src/abi/connectors/v1/swerve.ts +178 -0
- package/src/abi/connectors/v1/uniswap.ts +297 -0
- package/src/abi/connectors/v2/1INCH-A.ts +3 -0
- package/src/abi/connectors/v2/1INCH-B.ts +3 -0
- package/src/abi/connectors/v2/AAVE-CLAIM-A.ts +3 -0
- package/src/abi/connectors/v2/AAVE-CLAIM-B.ts +165 -0
- package/src/abi/connectors/v2/AAVE-STAKE-A.ts +3 -0
- package/src/abi/connectors/v2/AAVE-V1-A.ts +130 -0
- package/src/abi/connectors/v2/AAVE-V1-IMPORT-A.ts +3 -0
- package/src/abi/connectors/v2/AAVE-V2-A.ts +229 -0
- package/src/abi/connectors/v2/AAVE-V2-IMPORT-A.ts +3 -0
- package/src/abi/connectors/v2/AAVE-V2-IMPORT-B.ts +224 -0
- package/src/abi/connectors/v2/AUTHORITY-A.ts +99 -0
- package/src/abi/connectors/v2/B-COMPOUND-A.ts +3 -0
- package/src/abi/connectors/v2/B-LIQUITY-A.ts +3 -0
- package/src/abi/connectors/v2/B-MAKERDAO-A.ts +3 -0
- package/src/abi/connectors/v2/BASIC-A.ts +135 -0
- package/src/abi/connectors/v2/BASIC-B.ts +3 -0
- package/src/abi/connectors/v2/BASIC-C.ts +3 -0
- package/src/abi/connectors/v2/COMP-A.ts +3 -0
- package/src/abi/connectors/v2/COMPOUND-A.ts +3 -0
- package/src/abi/connectors/v2/COMPOUND-IMPORT-A.ts +3 -0
- package/src/abi/connectors/v2/COMPOUND-IMPORT-B.ts +194 -0
- package/src/abi/connectors/v2/G-UNISWAP-A.ts +3 -0
- package/src/abi/connectors/v2/GELATO-AAVE-A.ts +3 -0
- package/src/abi/connectors/v2/INST-A.ts +3 -0
- package/src/abi/connectors/v2/INST-LM-A.ts +3 -0
- package/src/abi/connectors/v2/INST-STAKING-A.ts +3 -0
- package/src/abi/connectors/v2/INST-STAKING-B.ts +3 -0
- package/src/abi/connectors/v2/INSTAPOOL-A.ts +3 -0
- package/src/abi/connectors/v2/LIQUITY-A.ts +3 -0
- package/src/abi/connectors/v2/MAKERDAO-A.ts +3 -0
- package/src/abi/connectors/v2/MAKERDAO-CLAIM-A.ts +135 -0
- package/src/abi/connectors/v2/PARASWAP-A.ts +3 -0
- package/src/abi/connectors/v2/POLYGON-BRIDGE-A.ts +3 -0
- package/src/abi/connectors/v2/REFINANCE-A.ts +3 -0
- package/src/abi/connectors/v2/REFLEXER-A.ts +3 -0
- package/src/abi/connectors/v2/STAKE-ERC20-A.ts +3 -0
- package/src/abi/connectors/v2/UNISWAP-A.ts +297 -0
- package/src/abi/connectors/v2/UNISWAP-V2-A.ts +3 -0
- package/src/abi/connectors/v2/UNISWAP-V3-A.ts +3 -0
- package/src/abi/connectors/v2/UNISWAP-V3-STAKE-A.ts +3 -0
- package/src/abi/connectors/v2/WETH-A.ts +3 -0
- package/src/abi/connectors/v2/YEARN-VAULT-A.ts +3 -0
- package/src/abi/connectors/v2/index.ts +87 -0
- package/src/abi/index.ts +7 -5
- package/src/abi/interopX.json +1436 -0
- package/src/api/index.ts +1 -1
- package/src/constants/addresses.ts +5 -8
- package/src/constants/tokens.ts +44 -51
- package/src/db/models/transaction.ts +31 -30
- package/src/gnosis/actions/aaveV2/index.ts +9 -0
- package/src/gnosis/actions/aaveV2/source.ts +104 -0
- package/src/gnosis/actions/aaveV2/target.ts +13 -0
- package/src/gnosis/actions/index.ts +2 -2
- package/src/gnosis/index.ts +3 -3
- package/src/tasks/InteropX/SyncLogSubmitEvents.ts +138 -0
- package/src/tasks/Transactions/SyncTransactionStatusTask.ts +6 -3
- package/src/tasks/index.ts +5 -12
- package/src/typechain/InteropX.ts +1216 -0
- package/src/typechain/factories/InteropX__factory.ts +1932 -0
- package/src/typechain/factories/index.ts +1 -1
- package/src/typechain/index.ts +2 -2
- package/src/utils/index.ts +222 -97
- package/dist/src/abi/interopXContract.json +0 -391
- package/dist/src/gnosis/actions/withdraw/index.js +0 -55
- package/dist/src/tasks/InteropXContract/ProcessBridgeRequestEvents.js +0 -152
- package/dist/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.js +0 -89
- package/dist/src/typechain/factories/InteropXContract__factory.js +0 -526
- package/src/abi/interopXContract.json +0 -391
- package/src/gnosis/actions/withdraw/index.ts +0 -76
- package/src/tasks/InteropXContract/ProcessBridgeRequestEvents.ts +0 -216
- package/src/tasks/InteropXContract/SyncBridgeRequestEvents.ts +0 -114
- package/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.ts +0 -120
- package/src/typechain/InteropXContract.ts +0 -524
- package/src/typechain/factories/InteropXContract__factory.ts +0 -533
package/src/api/index.ts
CHANGED
@@ -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
|
-
|
5
|
+
interopX: '0xDB6083df37C5F224a3dF84A4B5f9fB60b6c8670a',
|
6
|
+
dsaAddress: '0x9Fbd453a8e7a158510fBae5D9935958507cf4b19',
|
11
7
|
},
|
12
8
|
43114: {
|
13
9
|
gnosisSafe: '0x31d7a5194Fe60AC209Cf1Ce2d539C9A60662Ed6b',
|
14
10
|
multisend: '0x998739BFdAAdde7C933B942a68053933098f9EDa',
|
15
|
-
|
11
|
+
interopX: '0xd61f55C6d9deD35B9d13243b816c4BcC1d78592b',
|
12
|
+
dsaAddress: '0xFcB7d826E32081c4799de2f83b47b49df600dc8c',
|
16
13
|
}
|
17
|
-
}
|
14
|
+
} as Record<number, { gnosisSafe: string, multisend: string, interopX: string, dsaAddress: string }>
|
package/src/constants/tokens.ts
CHANGED
@@ -1,48 +1,48 @@
|
|
1
1
|
export const tokens = {
|
2
|
-
1: [
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
21
|
-
declare
|
22
|
-
declare requestTransactionHash: string;
|
19
|
+
declare vnonce: string;
|
20
|
+
declare actionId: string;
|
21
|
+
declare sourceSender: string;
|
23
22
|
|
24
|
-
declare
|
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
|
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
|
-
|
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
|
-
|
80
|
-
|
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: '
|
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: '
|
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
|
-
|
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
|
+
}
|
package/src/gnosis/index.ts
CHANGED
@@ -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.
|
8
|
+
if (actions.hasOwnProperty(transaction.actionId)) {
|
9
9
|
|
10
|
-
const { transactions, logs } = await actions[transaction.
|
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.
|
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:
|
29
|
-
|
30
|
-
|
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
|
})
|
package/src/tasks/index.ts
CHANGED
@@ -5,9 +5,7 @@ import SyncTransactionStatusTask from "./Transactions/SyncTransactionStatusTask"
|
|
5
5
|
|
6
6
|
import AutoUpdateTask from "./AutoUpdateTask";
|
7
7
|
|
8
|
-
import
|
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
|
-
//
|
16
|
+
// InteropX
|
17
|
+
new SyncLogSubmitEvents({ chainId: 137 }),
|
18
|
+
new SyncLogSubmitEvents({ chainId: 43114 }),
|
19
19
|
|
20
|
-
new
|
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() {
|