@instadapp/interop-x 0.0.0-dev.a861339 → 0.0.0-dev.a9047d2
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 +22 -12
- package/dist/src/abi/aaveV2Resolver.json +832 -0
- package/dist/src/abi/aaveV3Resolver.json +628 -0
- package/dist/src/abi/balanceResolver.json +211 -0
- 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 +12 -2
- package/dist/src/abi/instList.json +232 -0
- package/dist/src/abi/interopX.json +1436 -0
- package/dist/src/api/index.js +8 -1
- package/dist/src/constants/addresses.js +12 -7
- package/dist/src/constants/blockConfirmations.js +8 -0
- package/dist/src/constants/capPerChain.js +8 -0
- package/dist/src/constants/index.js +3 -0
- package/dist/src/constants/tokens.js +30 -7
- package/dist/src/constants/wrappedNativeToken.js +8 -0
- package/dist/src/crons/index.js +3 -0
- package/dist/src/crons/prices.js +16 -0
- package/dist/src/db/models/transaction.js +26 -18
- package/dist/src/errors/index.js +30 -0
- package/dist/src/gnosis/actions/aaveV2/index.js +11 -0
- package/dist/src/gnosis/actions/aaveV2/source.js +100 -0
- package/dist/src/gnosis/actions/aaveV2/target.js +101 -0
- package/dist/src/gnosis/actions/aaveV3/index.js +11 -0
- package/dist/src/gnosis/actions/aaveV3/source.js +74 -0
- package/dist/src/gnosis/actions/aaveV3/target.js +87 -0
- package/dist/src/gnosis/actions/index.js +4 -2
- package/dist/src/gnosis/index.js +3 -3
- package/dist/src/index.js +2 -1
- package/dist/src/net/protocol/dial/SignatureDialProtocol.js +2 -2
- package/dist/src/providers/index.js +17 -0
- package/dist/src/providers/retry-provider.js +45 -0
- package/dist/src/services/Prices.js +74 -0
- package/dist/src/services/index.js +8 -0
- package/dist/src/tasks/InteropX/ProcessSubmitEvents.js +273 -0
- package/dist/src/tasks/InteropX/ProcessValidateEvents.js +203 -0
- package/dist/src/tasks/InteropX/SyncLogExecuteEvents.js +113 -0
- package/dist/src/tasks/{InteropXContract/SyncBridgeRequestEvents.js → InteropX/SyncLogSubmitEvents.js} +28 -18
- package/dist/src/tasks/InteropX/SyncLogValidateEvents.js +106 -0
- package/dist/src/tasks/Transactions/SyncTransactionStatusTask.js +6 -3
- package/dist/src/tasks/index.js +19 -12
- package/dist/src/typechain/{InteropXContract.js → AaveV2Resolver.js} +0 -0
- package/dist/src/typechain/AaveV3Resolver.js +2 -0
- package/dist/src/typechain/BalanceResolver.js +2 -0
- package/dist/src/typechain/InstList.js +2 -0
- package/dist/src/typechain/InteropX.js +2 -0
- package/dist/src/typechain/factories/AaveV2Resolver__factory.js +1191 -0
- package/dist/src/typechain/factories/AaveV3Resolver__factory.js +887 -0
- package/dist/src/typechain/factories/BalanceResolver__factory.js +228 -0
- package/dist/src/typechain/factories/InstList__factory.js +249 -0
- package/dist/src/typechain/factories/InteropX__factory.js +1928 -0
- package/dist/src/typechain/factories/index.js +11 -3
- package/dist/src/typechain/index.js +11 -3
- package/dist/src/utils/async.js +18 -0
- package/dist/src/utils/dsa.js +24 -0
- package/dist/src/utils/formatting.js +67 -0
- package/dist/src/utils/gnosis.js +87 -0
- package/dist/src/utils/http.js +10 -0
- package/dist/src/utils/index.js +22 -165
- package/dist/src/utils/interop.js +16 -0
- package/dist/src/utils/tokens.js +22 -0
- package/dist/src/utils/validate.js +107 -0
- package/dist/src/utils/web3.js +93 -0
- package/package.json +22 -12
- package/src/abi/aaveV2Resolver.json +832 -0
- package/src/abi/aaveV3Resolver.json +628 -0
- package/src/abi/balanceResolver.json +211 -0
- 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 +15 -5
- package/src/abi/instList.json +232 -0
- package/src/abi/interopX.json +1436 -0
- package/src/api/index.ts +9 -1
- package/src/constants/addresses.ts +24 -8
- package/src/constants/blockConfirmations.ts +5 -0
- package/src/constants/capPerChain.ts +5 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/tokens.ts +31 -8
- package/src/constants/wrappedNativeToken.ts +5 -0
- package/src/crons/index.ts +1 -0
- package/src/crons/prices.ts +12 -0
- package/src/db/models/transaction.ts +147 -98
- package/src/errors/index.ts +26 -0
- package/src/gnosis/actions/aaveV2/index.ts +9 -0
- package/src/gnosis/actions/aaveV2/source.ts +183 -0
- package/src/gnosis/actions/aaveV2/target.ts +168 -0
- package/src/gnosis/actions/aaveV3/index.ts +9 -0
- package/src/gnosis/actions/aaveV3/source.ts +119 -0
- package/src/gnosis/actions/aaveV3/target.ts +142 -0
- package/src/gnosis/actions/index.ts +4 -2
- package/src/gnosis/index.ts +3 -3
- package/src/index.ts +1 -0
- package/src/net/protocol/dial/SignatureDialProtocol.ts +3 -2
- package/src/providers/index.ts +1 -0
- package/src/providers/retry-provider.ts +51 -0
- package/src/services/Prices.ts +89 -0
- package/src/services/index.ts +1 -0
- package/src/tasks/InteropX/ProcessSubmitEvents.ts +385 -0
- package/src/tasks/InteropX/ProcessValidateEvents.ts +297 -0
- package/src/tasks/InteropX/SyncLogExecuteEvents.ts +161 -0
- package/src/tasks/InteropX/SyncLogSubmitEvents.ts +138 -0
- package/src/tasks/InteropX/SyncLogValidateEvents.ts +151 -0
- package/src/tasks/Transactions/SyncTransactionStatusTask.ts +6 -3
- package/src/tasks/index.ts +20 -12
- package/src/typechain/AaveV2Resolver.ts +1017 -0
- package/src/typechain/AaveV3Resolver.ts +935 -0
- package/src/typechain/BalanceResolver.ts +266 -0
- package/src/typechain/InstList.ts +402 -0
- package/src/typechain/InteropX.ts +1216 -0
- package/src/typechain/factories/AaveV2Resolver__factory.ts +1198 -0
- package/src/typechain/factories/AaveV3Resolver__factory.ts +894 -0
- package/src/typechain/factories/BalanceResolver__factory.ts +235 -0
- package/src/typechain/factories/InstList__factory.ts +253 -0
- package/src/typechain/factories/InteropX__factory.ts +1932 -0
- package/src/typechain/factories/index.ts +5 -1
- package/src/typechain/index.ts +10 -2
- package/src/utils/async.ts +22 -0
- package/src/utils/dsa.ts +30 -0
- package/src/utils/formatting.ts +68 -0
- package/src/utils/gnosis.ts +166 -0
- package/src/utils/http.ts +6 -0
- package/src/utils/index.ts +9 -240
- package/src/utils/interop.ts +28 -0
- package/src/utils/tokens.ts +21 -0
- package/src/utils/validate.ts +171 -0
- package/src/utils/web3.ts +132 -0
- package/dist/src/abi/interopXContract.json +0 -391
- package/dist/src/gnosis/actions/withdraw/index.js +0 -41
- package/dist/src/tasks/InteropXContract/ProcessBridgeRequestEvents.js +0 -147
- package/dist/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.js +0 -80
- 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 -56
- package/src/tasks/InteropXContract/ProcessBridgeRequestEvents.ts +0 -211
- package/src/tasks/InteropXContract/SyncBridgeRequestEvents.ts +0 -116
- package/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.ts +0 -112
- package/src/typechain/InteropXContract.ts +0 -524
- package/src/typechain/factories/InteropXContract__factory.ts +0 -533
@@ -0,0 +1,183 @@
|
|
1
|
+
import abi from "@/abi";
|
2
|
+
import config from "@/config";
|
3
|
+
import { addresses } from "@/constants";
|
4
|
+
import { Transaction } from "@/db";
|
5
|
+
import { JsonRpcRetryProvider } from "@/providers";
|
6
|
+
import { AaveV2Resolver, InstList, InteropX } from "@/typechain";
|
7
|
+
import { ChainId } from "@/types";
|
8
|
+
import { encodeConnectorMethod, getContract, getRpcProviderUrl } from "@/utils";
|
9
|
+
import { ethers } from "ethers";
|
10
|
+
import { MetaTransaction, OperationType } from "ethers-multisend";
|
11
|
+
|
12
|
+
const safeUserRatioGap = "800000000000000000"
|
13
|
+
|
14
|
+
export default async function (transaction: Transaction) {
|
15
|
+
const transactions: MetaTransaction[] = [];
|
16
|
+
const logs: any[] = [];
|
17
|
+
|
18
|
+
const {
|
19
|
+
position,
|
20
|
+
actionId,
|
21
|
+
actionIdHashHash,
|
22
|
+
sourceSender,
|
23
|
+
sourceDsaId,
|
24
|
+
targetDsaId,
|
25
|
+
sourceChainId,
|
26
|
+
targetChainId,
|
27
|
+
vnonce,
|
28
|
+
metadata,
|
29
|
+
} = transaction.submitEvent;
|
30
|
+
|
31
|
+
const sourceChainProvider = new JsonRpcRetryProvider(
|
32
|
+
getRpcProviderUrl(sourceChainId as ChainId)
|
33
|
+
);
|
34
|
+
const sourceWallet = new ethers.Wallet(
|
35
|
+
config.privateKey,
|
36
|
+
sourceChainProvider
|
37
|
+
);
|
38
|
+
const targetChainProvider = new JsonRpcRetryProvider(
|
39
|
+
getRpcProviderUrl(targetChainId as ChainId)
|
40
|
+
);
|
41
|
+
const targetWallet = new ethers.Wallet(
|
42
|
+
config.privateKey,
|
43
|
+
targetChainProvider
|
44
|
+
);
|
45
|
+
const dsaAddress = addresses[sourceChainId].dsaAddress;
|
46
|
+
const sourceUserAddress =
|
47
|
+
Number(sourceDsaId) == 0 ? sourceSender : dsaAddress;
|
48
|
+
const interopAddress = addresses[sourceChainId].interopX;
|
49
|
+
const contract = getContract<InteropX>(
|
50
|
+
interopAddress,
|
51
|
+
abi.interopX,
|
52
|
+
sourceWallet
|
53
|
+
);
|
54
|
+
|
55
|
+
const sourceResolverContract = getContract<AaveV2Resolver>(
|
56
|
+
addresses[sourceChainId].aaveV2Resolver,
|
57
|
+
abi.aaveV2Resolver,
|
58
|
+
sourceWallet
|
59
|
+
);
|
60
|
+
|
61
|
+
const targetResolverContract = getContract<AaveV2Resolver>(
|
62
|
+
addresses[targetChainId].aaveV2Resolver,
|
63
|
+
abi.aaveV2Resolver,
|
64
|
+
targetWallet
|
65
|
+
);
|
66
|
+
|
67
|
+
const sourceInstListContract = getContract<InstList>(
|
68
|
+
addresses[sourceChainId].instList,
|
69
|
+
abi.instList,
|
70
|
+
sourceChainProvider,
|
71
|
+
);
|
72
|
+
|
73
|
+
const sourceDsaAddress = await sourceInstListContract.accountAddr(sourceDsaId)
|
74
|
+
|
75
|
+
|
76
|
+
const sourceAavePosition = await sourceResolverContract.checkAavePosition(sourceDsaAddress, position, safeUserRatioGap, false)
|
77
|
+
|
78
|
+
const userSourceAaveIsOk = sourceAavePosition.isOk;
|
79
|
+
|
80
|
+
if (!userSourceAaveIsOk) {
|
81
|
+
throw new Error("Source chain aave position is not safe to migrate.");
|
82
|
+
}
|
83
|
+
|
84
|
+
const targetInstListContract = getContract<InstList>(
|
85
|
+
addresses[targetChainId].instList,
|
86
|
+
abi.instList,
|
87
|
+
targetChainProvider,
|
88
|
+
);
|
89
|
+
|
90
|
+
const targetDsaAddress = await targetInstListContract.accountAddr(targetDsaId)
|
91
|
+
|
92
|
+
const targetAavePosition = await targetResolverContract
|
93
|
+
.checkAavePosition(targetDsaAddress, position, safeUserRatioGap, true)
|
94
|
+
|
95
|
+
const userTargetAaveIsOk = targetAavePosition.isOk;
|
96
|
+
|
97
|
+
if (!userTargetAaveIsOk) {
|
98
|
+
throw new Error("Target chain aave position will not be safe after migration.");
|
99
|
+
}
|
100
|
+
|
101
|
+
const targetAavePositionWithFee = await targetResolverContract
|
102
|
+
.checkAavePosition(targetDsaAddress, position, safeUserRatioGap, true);
|
103
|
+
|
104
|
+
const userTargetAaveIsOkWithFee = targetAavePositionWithFee.isOk;
|
105
|
+
|
106
|
+
if (!userTargetAaveIsOkWithFee) {
|
107
|
+
throw new Error("Target chain aave position will not be safe after migration due to minimum fee.");
|
108
|
+
}
|
109
|
+
|
110
|
+
const sourceSpells: any[] = [];
|
111
|
+
const commonSpells: any[] = [];
|
112
|
+
|
113
|
+
for (const withdraw of position.withdraw) {
|
114
|
+
let spellData = {
|
115
|
+
connector: "AAVE-V2-A",
|
116
|
+
method: "payback",
|
117
|
+
args: [withdraw.sourceToken, withdraw.amount, "2", "0", "0"],
|
118
|
+
};
|
119
|
+
|
120
|
+
sourceSpells.push({
|
121
|
+
connector: spellData.connector,
|
122
|
+
data: encodeConnectorMethod(spellData),
|
123
|
+
});
|
124
|
+
|
125
|
+
let spellDataBasicWithdraw = {
|
126
|
+
connector: "BASIC-A",
|
127
|
+
method: "withdraw",
|
128
|
+
args: [withdraw.sourceToken, withdraw.amount, sourceUserAddress, "0", "0"],
|
129
|
+
};
|
130
|
+
|
131
|
+
commonSpells.push({
|
132
|
+
connector: spellDataBasicWithdraw.connector,
|
133
|
+
data: encodeConnectorMethod(spellDataBasicWithdraw),
|
134
|
+
});
|
135
|
+
}
|
136
|
+
|
137
|
+
for (const supply of position.supply) {
|
138
|
+
let spellDataWithdraw = {
|
139
|
+
connector: "AAVE-V2-A",
|
140
|
+
method: "withdraw",
|
141
|
+
args: [supply.sourceToken, supply.amount, "0", "0"],
|
142
|
+
};
|
143
|
+
|
144
|
+
sourceSpells.push({
|
145
|
+
connector: spellDataWithdraw.connector,
|
146
|
+
data: encodeConnectorMethod(spellDataWithdraw),
|
147
|
+
});
|
148
|
+
|
149
|
+
let spellDataBasicWithdraw = {
|
150
|
+
connector: "BASIC-A",
|
151
|
+
method: "withdraw",
|
152
|
+
args: [supply.sourceToken, supply.amount, dsaAddress, "0", "0"],
|
153
|
+
};
|
154
|
+
|
155
|
+
sourceSpells.push({
|
156
|
+
connector: spellDataBasicWithdraw.connector,
|
157
|
+
data: encodeConnectorMethod(spellDataBasicWithdraw),
|
158
|
+
});
|
159
|
+
}
|
160
|
+
|
161
|
+
const { data } = await contract.populateTransaction.sourceAction(
|
162
|
+
sourceSpells,
|
163
|
+
commonSpells,
|
164
|
+
position,
|
165
|
+
actionId,
|
166
|
+
sourceSender,
|
167
|
+
sourceDsaId,
|
168
|
+
targetDsaId,
|
169
|
+
sourceChainId,
|
170
|
+
targetChainId,
|
171
|
+
vnonce,
|
172
|
+
metadata
|
173
|
+
);
|
174
|
+
|
175
|
+
transactions.push({
|
176
|
+
to: interopAddress,
|
177
|
+
data: data!,
|
178
|
+
value: "0",
|
179
|
+
operation: OperationType.Call,
|
180
|
+
});
|
181
|
+
|
182
|
+
return { transactions, logs };
|
183
|
+
}
|
@@ -0,0 +1,168 @@
|
|
1
|
+
import abi from "@/abi";
|
2
|
+
import config from "@/config";
|
3
|
+
import { addresses } from "@/constants";
|
4
|
+
import { Transaction } from "@/db";
|
5
|
+
import { JsonRpcRetryProvider } from "@/providers";
|
6
|
+
import { AaveV2Resolver, InteropX } from "@/typechain";
|
7
|
+
import { InstList } from "@/typechain/InstList";
|
8
|
+
import { ChainId } from "@/types";
|
9
|
+
import { encodeConnectorMethod, getContract, getRpcProviderUrl } from "@/utils";
|
10
|
+
import { ethers } from "ethers";
|
11
|
+
import { MetaTransaction, OperationType } from "ethers-multisend";
|
12
|
+
|
13
|
+
const safeUserRatioGap = "800000000000000000"
|
14
|
+
|
15
|
+
export default async function (transaction: Transaction) {
|
16
|
+
const transactions: MetaTransaction[] = [];
|
17
|
+
const logs: any[] = [];
|
18
|
+
|
19
|
+
const {
|
20
|
+
sourceSpells,
|
21
|
+
position,
|
22
|
+
actionId,
|
23
|
+
sourceSender,
|
24
|
+
sourceDsaId,
|
25
|
+
targetDsaId,
|
26
|
+
sourceChainId,
|
27
|
+
targetChainId,
|
28
|
+
vnonce,
|
29
|
+
metadata,
|
30
|
+
} = transaction.validateEvent;
|
31
|
+
|
32
|
+
const targetChainProvider = new JsonRpcRetryProvider(
|
33
|
+
getRpcProviderUrl(targetChainId as ChainId)
|
34
|
+
);
|
35
|
+
const targetWallet = new ethers.Wallet(
|
36
|
+
config.privateKey,
|
37
|
+
targetChainProvider
|
38
|
+
);
|
39
|
+
|
40
|
+
const targetResolverContract = getContract<AaveV2Resolver>(
|
41
|
+
addresses[targetChainId].aaveV2Resolver,
|
42
|
+
abi.aaveV2Resolver,
|
43
|
+
targetWallet
|
44
|
+
);
|
45
|
+
|
46
|
+
const targetInstListContract = getContract<InstList>(
|
47
|
+
addresses[targetChainId].instList,
|
48
|
+
abi.instList,
|
49
|
+
targetChainProvider,
|
50
|
+
);
|
51
|
+
|
52
|
+
const targetDsaAddress = await targetInstListContract.accountAddr(targetDsaId)
|
53
|
+
|
54
|
+
|
55
|
+
const targetAavePosition = await targetResolverContract
|
56
|
+
.checkAavePosition(targetDsaAddress, position, safeUserRatioGap, true)
|
57
|
+
|
58
|
+
const userTargetAaveIsOk = targetAavePosition.isOk;
|
59
|
+
|
60
|
+
if (!userTargetAaveIsOk) {
|
61
|
+
throw new Error("Target chain aave position will not be safe after migration.");
|
62
|
+
}
|
63
|
+
|
64
|
+
const targetAavePositionWithFee = await targetResolverContract
|
65
|
+
.checkAavePosition(targetDsaAddress, position, safeUserRatioGap, true);
|
66
|
+
|
67
|
+
const userTargetAaveIsOkWithFee = targetAavePositionWithFee.isOk;
|
68
|
+
|
69
|
+
if (!userTargetAaveIsOkWithFee) {
|
70
|
+
throw new Error("Target chain aave position will not be safe after migration due to minimum fee.");
|
71
|
+
}
|
72
|
+
|
73
|
+
const dsaAddress = addresses[targetChainId].dsaAddress;
|
74
|
+
const interopAddress = addresses[targetChainId].interopX;
|
75
|
+
const contract = getContract<InteropX>(
|
76
|
+
interopAddress,
|
77
|
+
abi.interopX,
|
78
|
+
targetWallet
|
79
|
+
);
|
80
|
+
|
81
|
+
const targetSpells: any[] = [];
|
82
|
+
const commonSpells: any[] = [];
|
83
|
+
|
84
|
+
for (const supplyToken of position.supply) {
|
85
|
+
let spellData = {
|
86
|
+
connector: "AAVE-V2-A",
|
87
|
+
method: "deposit",
|
88
|
+
args: [supplyToken.targetToken, supplyToken.amount, "0", "0"],
|
89
|
+
};
|
90
|
+
|
91
|
+
targetSpells.push({
|
92
|
+
connector: spellData.connector,
|
93
|
+
data: encodeConnectorMethod(spellData),
|
94
|
+
});
|
95
|
+
|
96
|
+
let spellDataBasicWithdraw = {
|
97
|
+
connector: "BASIC-A",
|
98
|
+
method: "withdraw",
|
99
|
+
args: [supplyToken.targetToken, supplyToken.amount, targetDsaAddress, "0", "0"],
|
100
|
+
};
|
101
|
+
|
102
|
+
commonSpells.push({
|
103
|
+
connector: spellDataBasicWithdraw.connector,
|
104
|
+
data: encodeConnectorMethod(spellDataBasicWithdraw),
|
105
|
+
});
|
106
|
+
}
|
107
|
+
|
108
|
+
for (const withdrawToken of position.withdraw) {
|
109
|
+
|
110
|
+
let spellData = {
|
111
|
+
connector: "AAVE-V2-A",
|
112
|
+
method: "borrow",
|
113
|
+
args: [
|
114
|
+
withdrawToken.targetToken,
|
115
|
+
withdrawToken.amount,
|
116
|
+
"2",
|
117
|
+
"0",
|
118
|
+
"0",
|
119
|
+
],
|
120
|
+
};
|
121
|
+
|
122
|
+
targetSpells.push({
|
123
|
+
connector: spellData.connector,
|
124
|
+
data: encodeConnectorMethod(spellData),
|
125
|
+
});
|
126
|
+
|
127
|
+
let spellData2 = {
|
128
|
+
connector: "BASIC-A",
|
129
|
+
method: "withdraw",
|
130
|
+
args: [
|
131
|
+
withdrawToken.targetToken,
|
132
|
+
withdrawToken.amount,
|
133
|
+
dsaAddress,
|
134
|
+
"0",
|
135
|
+
"0",
|
136
|
+
],
|
137
|
+
};
|
138
|
+
|
139
|
+
targetSpells.push({
|
140
|
+
connector: spellData.connector,
|
141
|
+
data: encodeConnectorMethod(spellData2),
|
142
|
+
});
|
143
|
+
}
|
144
|
+
|
145
|
+
const { data } = await contract.populateTransaction.targetAction(
|
146
|
+
sourceSpells,
|
147
|
+
targetSpells,
|
148
|
+
commonSpells,
|
149
|
+
position,
|
150
|
+
actionId,
|
151
|
+
sourceSender,
|
152
|
+
sourceDsaId,
|
153
|
+
targetDsaId,
|
154
|
+
sourceChainId,
|
155
|
+
targetChainId,
|
156
|
+
vnonce,
|
157
|
+
metadata
|
158
|
+
);
|
159
|
+
|
160
|
+
transactions.push({
|
161
|
+
to: interopAddress,
|
162
|
+
data: data!,
|
163
|
+
value: "0",
|
164
|
+
operation: OperationType.Call,
|
165
|
+
});
|
166
|
+
|
167
|
+
return { transactions, logs }
|
168
|
+
}
|
@@ -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,119 @@
|
|
1
|
+
import abi from "@/abi";
|
2
|
+
import config from "@/config";
|
3
|
+
import { addresses } from "@/constants";
|
4
|
+
import { Transaction } from "@/db";
|
5
|
+
import { JsonRpcRetryProvider } from "@/providers";
|
6
|
+
import { InteropX } from "@/typechain";
|
7
|
+
import { ChainId } from "@/types";
|
8
|
+
import { encodeConnectorMethod, getContract, getRpcProviderUrl } from "@/utils";
|
9
|
+
import { ethers } from "ethers";
|
10
|
+
import { MetaTransaction, OperationType } from "ethers-multisend";
|
11
|
+
|
12
|
+
export default async function (transaction: Transaction) {
|
13
|
+
const transactions: MetaTransaction[] = [];
|
14
|
+
const logs: any[] = [];
|
15
|
+
|
16
|
+
const {
|
17
|
+
position,
|
18
|
+
actionId,
|
19
|
+
actionIdHashHash,
|
20
|
+
sourceSender,
|
21
|
+
sourceDsaId,
|
22
|
+
targetDsaId,
|
23
|
+
sourceChainId,
|
24
|
+
targetChainId,
|
25
|
+
vnonce,
|
26
|
+
metadata,
|
27
|
+
} = transaction.submitEvent;
|
28
|
+
|
29
|
+
const sourceChainProvider = new JsonRpcRetryProvider(
|
30
|
+
getRpcProviderUrl(sourceChainId as ChainId)
|
31
|
+
);
|
32
|
+
const sourceWallet = new ethers.Wallet(
|
33
|
+
config.privateKey,
|
34
|
+
sourceChainProvider
|
35
|
+
);
|
36
|
+
const dsaAddress = addresses[sourceChainId].dsaAddress;
|
37
|
+
const sourceUserAddress =
|
38
|
+
Number(sourceDsaId) == 0 ? sourceSender : dsaAddress;
|
39
|
+
const interopAddress = addresses[sourceChainId].interopX;
|
40
|
+
const contract = getContract<InteropX>(
|
41
|
+
interopAddress,
|
42
|
+
abi.interopX,
|
43
|
+
sourceWallet
|
44
|
+
);
|
45
|
+
|
46
|
+
const sourceSpells: any[] = [];
|
47
|
+
const commonSpells: any[] = [];
|
48
|
+
|
49
|
+
for (const withdraw of position.withdraw) {
|
50
|
+
let spellData = {
|
51
|
+
connector: "AAVE-V3-A",
|
52
|
+
method: "payback",
|
53
|
+
args: [withdraw.sourceToken, withdraw.amount, "2", "0", "0"],
|
54
|
+
};
|
55
|
+
|
56
|
+
sourceSpells.push({
|
57
|
+
connector: spellData.connector,
|
58
|
+
data: encodeConnectorMethod(spellData),
|
59
|
+
});
|
60
|
+
|
61
|
+
let spellDataBasicWithdraw = {
|
62
|
+
connector: "BASIC-A",
|
63
|
+
method: "withdraw",
|
64
|
+
args: [withdraw.sourceToken, withdraw.amount, sourceUserAddress, "0", "0"],
|
65
|
+
};
|
66
|
+
|
67
|
+
commonSpells.push({
|
68
|
+
connector: spellDataBasicWithdraw.connector,
|
69
|
+
data: encodeConnectorMethod(spellDataBasicWithdraw),
|
70
|
+
});
|
71
|
+
}
|
72
|
+
|
73
|
+
for (const supply of position.supply) {
|
74
|
+
let spellDataWithdraw = {
|
75
|
+
connector: "AAVE-V3-A",
|
76
|
+
method: "withdraw",
|
77
|
+
args: [supply.sourceToken, supply.amount, "0", "0"],
|
78
|
+
};
|
79
|
+
|
80
|
+
sourceSpells.push({
|
81
|
+
connector: spellDataWithdraw.connector,
|
82
|
+
data: encodeConnectorMethod(spellDataWithdraw),
|
83
|
+
});
|
84
|
+
|
85
|
+
let spellDataBasicWithdraw = {
|
86
|
+
connector: "BASIC-A",
|
87
|
+
method: "withdraw",
|
88
|
+
args: [supply.sourceToken, supply.amount, dsaAddress, "0", "0"],
|
89
|
+
};
|
90
|
+
|
91
|
+
sourceSpells.push({
|
92
|
+
connector: spellDataBasicWithdraw.connector,
|
93
|
+
data: encodeConnectorMethod(spellDataBasicWithdraw),
|
94
|
+
});
|
95
|
+
}
|
96
|
+
|
97
|
+
const { data } = await contract.populateTransaction.sourceAction(
|
98
|
+
sourceSpells,
|
99
|
+
commonSpells,
|
100
|
+
position,
|
101
|
+
actionId,
|
102
|
+
sourceSender,
|
103
|
+
sourceDsaId,
|
104
|
+
targetDsaId,
|
105
|
+
sourceChainId,
|
106
|
+
targetChainId,
|
107
|
+
vnonce,
|
108
|
+
metadata
|
109
|
+
);
|
110
|
+
|
111
|
+
transactions.push({
|
112
|
+
to: interopAddress,
|
113
|
+
data: data!,
|
114
|
+
value: "0",
|
115
|
+
operation: OperationType.Call,
|
116
|
+
});
|
117
|
+
|
118
|
+
return { transactions, logs };
|
119
|
+
}
|
@@ -0,0 +1,142 @@
|
|
1
|
+
import abi from "@/abi";
|
2
|
+
import config from "@/config";
|
3
|
+
import { addresses } from "@/constants";
|
4
|
+
import { Transaction } from "@/db";
|
5
|
+
import { JsonRpcRetryProvider } from "@/providers";
|
6
|
+
import { InteropX } from "@/typechain";
|
7
|
+
import { InstList } from "@/typechain/InstList";
|
8
|
+
import { ChainId } from "@/types";
|
9
|
+
import { encodeConnectorMethod, getContract, getRpcProviderUrl } from "@/utils";
|
10
|
+
import { ethers } from "ethers";
|
11
|
+
import { MetaTransaction, OperationType } from "ethers-multisend";
|
12
|
+
|
13
|
+
|
14
|
+
export default async function (transaction: Transaction) {
|
15
|
+
const transactions: MetaTransaction[] = [];
|
16
|
+
const logs: any[] = [];
|
17
|
+
|
18
|
+
const {
|
19
|
+
sourceSpells,
|
20
|
+
position,
|
21
|
+
actionId,
|
22
|
+
sourceSender,
|
23
|
+
sourceDsaId,
|
24
|
+
targetDsaId,
|
25
|
+
sourceChainId,
|
26
|
+
targetChainId,
|
27
|
+
vnonce,
|
28
|
+
metadata,
|
29
|
+
} = transaction.validateEvent;
|
30
|
+
|
31
|
+
const targetChainProvider = new JsonRpcRetryProvider(
|
32
|
+
getRpcProviderUrl(targetChainId as ChainId)
|
33
|
+
);
|
34
|
+
const targetWallet = new ethers.Wallet(
|
35
|
+
config.privateKey,
|
36
|
+
targetChainProvider
|
37
|
+
);
|
38
|
+
|
39
|
+
|
40
|
+
const targetInstListContract = getContract<InstList>(
|
41
|
+
addresses[targetChainId].instList,
|
42
|
+
abi.instList,
|
43
|
+
targetChainProvider,
|
44
|
+
);
|
45
|
+
|
46
|
+
const targetDsaAddress = await targetInstListContract.accountAddr(targetDsaId)
|
47
|
+
const dsaAddress = addresses[targetChainId].dsaAddress;
|
48
|
+
const interopAddress = addresses[targetChainId].interopX;
|
49
|
+
const contract = getContract<InteropX>(
|
50
|
+
interopAddress,
|
51
|
+
abi.interopX,
|
52
|
+
targetWallet
|
53
|
+
);
|
54
|
+
|
55
|
+
const targetSpells: any[] = [];
|
56
|
+
const commonSpells: any[] = [];
|
57
|
+
|
58
|
+
for (const supplyToken of position.supply) {
|
59
|
+
let spellData = {
|
60
|
+
connector: "AAVE-V3-A",
|
61
|
+
method: "deposit",
|
62
|
+
args: [supplyToken.targetToken, supplyToken.amount, "0", "0"],
|
63
|
+
};
|
64
|
+
|
65
|
+
targetSpells.push({
|
66
|
+
connector: spellData.connector,
|
67
|
+
data: encodeConnectorMethod(spellData),
|
68
|
+
});
|
69
|
+
|
70
|
+
let spellDataBasicWithdraw = {
|
71
|
+
connector: "BASIC-A",
|
72
|
+
method: "withdraw",
|
73
|
+
args: [supplyToken.targetToken, supplyToken.amount, targetDsaAddress, "0", "0"],
|
74
|
+
};
|
75
|
+
|
76
|
+
commonSpells.push({
|
77
|
+
connector: spellDataBasicWithdraw.connector,
|
78
|
+
data: encodeConnectorMethod(spellDataBasicWithdraw),
|
79
|
+
});
|
80
|
+
}
|
81
|
+
|
82
|
+
for (const withdrawToken of position.withdraw) {
|
83
|
+
|
84
|
+
let spellData = {
|
85
|
+
connector: "AAVE-V3-A",
|
86
|
+
method: "borrow",
|
87
|
+
args: [
|
88
|
+
withdrawToken.targetToken,
|
89
|
+
withdrawToken.amount,
|
90
|
+
"2",
|
91
|
+
"0",
|
92
|
+
"0",
|
93
|
+
],
|
94
|
+
};
|
95
|
+
|
96
|
+
targetSpells.push({
|
97
|
+
connector: spellData.connector,
|
98
|
+
data: encodeConnectorMethod(spellData),
|
99
|
+
});
|
100
|
+
|
101
|
+
let spellData2 = {
|
102
|
+
connector: "BASIC-A",
|
103
|
+
method: "withdraw",
|
104
|
+
args: [
|
105
|
+
withdrawToken.targetToken,
|
106
|
+
withdrawToken.amount,
|
107
|
+
dsaAddress,
|
108
|
+
"0",
|
109
|
+
"0",
|
110
|
+
],
|
111
|
+
};
|
112
|
+
|
113
|
+
targetSpells.push({
|
114
|
+
connector: spellData.connector,
|
115
|
+
data: encodeConnectorMethod(spellData2),
|
116
|
+
});
|
117
|
+
}
|
118
|
+
|
119
|
+
const { data } = await contract.populateTransaction.targetAction(
|
120
|
+
sourceSpells,
|
121
|
+
targetSpells,
|
122
|
+
commonSpells,
|
123
|
+
position,
|
124
|
+
actionId,
|
125
|
+
sourceSender,
|
126
|
+
sourceDsaId,
|
127
|
+
targetDsaId,
|
128
|
+
sourceChainId,
|
129
|
+
targetChainId,
|
130
|
+
vnonce,
|
131
|
+
metadata
|
132
|
+
);
|
133
|
+
|
134
|
+
transactions.push({
|
135
|
+
to: interopAddress,
|
136
|
+
data: data!,
|
137
|
+
value: "0",
|
138
|
+
operation: OperationType.Call,
|
139
|
+
});
|
140
|
+
|
141
|
+
return { transactions, logs }
|
142
|
+
}
|
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
|
}
|
package/src/index.ts
CHANGED
@@ -12,6 +12,7 @@ export interface ISignatureRequest {
|
|
12
12
|
transactionHash: string
|
13
13
|
safeTxGas: string
|
14
14
|
safeNonce: string
|
15
|
+
chainId: number
|
15
16
|
}
|
16
17
|
export interface ISignatureResponse {
|
17
18
|
signer: string,
|
@@ -54,9 +55,9 @@ export class SignatureDialProtocol extends BaseDialProtocol<ISignatureRequest, I
|
|
54
55
|
const { data: gnosisData } = await buildGnosisAction(transaction, data.type);
|
55
56
|
|
56
57
|
const signedData = await signGnosisSafeTx({
|
57
|
-
to: addresses[
|
58
|
+
to: addresses[data.chainId].multisend,
|
58
59
|
data: gnosisData,
|
59
|
-
chainId:
|
60
|
+
chainId: data.chainId as ChainId,
|
60
61
|
safeTxGas: data.safeTxGas,
|
61
62
|
nonce: data.safeNonce,
|
62
63
|
}, { signer });
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './retry-provider';
|