@instadapp/interop-x 0.0.0-dev.e916c22 → 0.0.0-dev.ea4acf6

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 (100) hide show
  1. package/dist/package.json +9 -2
  2. package/dist/src/abi/aaveV2Resolver.json +832 -0
  3. package/dist/src/abi/aaveV3Resolver.json +628 -0
  4. package/dist/src/abi/balanceResolver.json +211 -0
  5. package/dist/src/abi/index.js +6 -0
  6. package/dist/src/api/index.js +7 -0
  7. package/dist/src/constants/addresses.js +6 -0
  8. package/dist/src/constants/capPerChain.js +8 -0
  9. package/dist/src/constants/index.js +2 -0
  10. package/dist/src/constants/tokens.js +44 -44
  11. package/dist/src/constants/wrappedNativeToken.js +8 -0
  12. package/dist/src/crons/index.js +3 -0
  13. package/dist/src/crons/prices.js +16 -0
  14. package/dist/src/db/models/transaction.js +1 -1
  15. package/dist/src/errors/index.js +30 -0
  16. package/dist/src/gnosis/actions/aaveV2/source.js +26 -1
  17. package/dist/src/gnosis/actions/aaveV2/target.js +18 -4
  18. package/dist/src/gnosis/actions/aaveV3/index.js +11 -0
  19. package/dist/src/gnosis/actions/aaveV3/source.js +74 -0
  20. package/dist/src/gnosis/actions/aaveV3/target.js +87 -0
  21. package/dist/src/gnosis/actions/index.js +2 -0
  22. package/dist/src/index.js +2 -1
  23. package/dist/src/providers/index.js +17 -0
  24. package/dist/src/providers/retry-provider.js +45 -0
  25. package/dist/src/services/Prices.js +74 -0
  26. package/dist/src/services/index.js +8 -0
  27. package/dist/src/tasks/InteropX/{ProcessSubmitSubmitEvents.js → ProcessSubmitEvents.js} +108 -14
  28. package/dist/src/tasks/InteropX/ProcessValidateEvents.js +30 -10
  29. package/dist/src/tasks/InteropX/SyncLogExecuteEvents.js +3 -2
  30. package/dist/src/tasks/InteropX/SyncLogSubmitEvents.js +3 -2
  31. package/dist/src/tasks/InteropX/SyncLogValidateEvents.js +3 -2
  32. package/dist/src/tasks/index.js +3 -4
  33. package/dist/src/typechain/AaveV2Resolver.js +2 -0
  34. package/dist/src/typechain/AaveV3Resolver.js +2 -0
  35. package/dist/src/typechain/BalanceResolver.js +2 -0
  36. package/dist/src/typechain/factories/AaveV2Resolver__factory.js +1191 -0
  37. package/dist/src/typechain/factories/AaveV3Resolver__factory.js +887 -0
  38. package/dist/src/typechain/factories/BalanceResolver__factory.js +228 -0
  39. package/dist/src/typechain/factories/index.js +7 -1
  40. package/dist/src/typechain/index.js +7 -1
  41. package/dist/src/utils/async.js +18 -0
  42. package/dist/src/utils/dsa.js +36 -0
  43. package/dist/src/utils/formatting.js +67 -0
  44. package/dist/src/utils/gnosis.js +87 -0
  45. package/dist/src/utils/http.js +10 -0
  46. package/dist/src/utils/index.js +22 -220
  47. package/dist/src/utils/interop.js +16 -0
  48. package/dist/src/utils/tokens.js +22 -0
  49. package/dist/src/utils/validate.js +111 -0
  50. package/dist/src/utils/web3.js +93 -0
  51. package/package.json +9 -2
  52. package/src/abi/aaveV2Resolver.json +832 -0
  53. package/src/abi/aaveV3Resolver.json +628 -0
  54. package/src/abi/balanceResolver.json +211 -0
  55. package/src/abi/index.ts +6 -0
  56. package/src/api/index.ts +8 -0
  57. package/src/constants/addresses.ts +18 -1
  58. package/src/constants/capPerChain.ts +5 -0
  59. package/src/constants/index.ts +2 -0
  60. package/src/constants/tokens.ts +44 -44
  61. package/src/constants/wrappedNativeToken.ts +5 -0
  62. package/src/crons/index.ts +1 -0
  63. package/src/crons/prices.ts +12 -0
  64. package/src/db/models/transaction.ts +1 -1
  65. package/src/errors/index.ts +26 -0
  66. package/src/gnosis/actions/aaveV2/source.ts +56 -3
  67. package/src/gnosis/actions/aaveV2/target.ts +30 -11
  68. package/src/gnosis/actions/aaveV3/index.ts +9 -0
  69. package/src/gnosis/actions/aaveV3/source.ts +119 -0
  70. package/src/gnosis/actions/aaveV3/target.ts +142 -0
  71. package/src/gnosis/actions/index.ts +2 -0
  72. package/src/index.ts +1 -0
  73. package/src/providers/index.ts +1 -0
  74. package/src/providers/retry-provider.ts +51 -0
  75. package/src/services/Prices.ts +89 -0
  76. package/src/services/index.ts +1 -0
  77. package/src/tasks/InteropX/{ProcessSubmitSubmitEvents.ts → ProcessSubmitEvents.ts} +135 -20
  78. package/src/tasks/InteropX/ProcessValidateEvents.ts +42 -19
  79. package/src/tasks/InteropX/SyncLogExecuteEvents.ts +5 -6
  80. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +6 -7
  81. package/src/tasks/InteropX/SyncLogValidateEvents.ts +6 -7
  82. package/src/tasks/index.ts +3 -4
  83. package/src/typechain/AaveV2Resolver.ts +1017 -0
  84. package/src/typechain/AaveV3Resolver.ts +935 -0
  85. package/src/typechain/BalanceResolver.ts +266 -0
  86. package/src/typechain/factories/AaveV2Resolver__factory.ts +1198 -0
  87. package/src/typechain/factories/AaveV3Resolver__factory.ts +894 -0
  88. package/src/typechain/factories/BalanceResolver__factory.ts +235 -0
  89. package/src/typechain/factories/index.ts +3 -0
  90. package/src/typechain/index.ts +6 -0
  91. package/src/utils/async.ts +22 -0
  92. package/src/utils/dsa.ts +56 -0
  93. package/src/utils/formatting.ts +68 -0
  94. package/src/utils/gnosis.ts +166 -0
  95. package/src/utils/http.ts +6 -0
  96. package/src/utils/index.ts +9 -365
  97. package/src/utils/interop.ts +28 -0
  98. package/src/utils/tokens.ts +21 -0
  99. package/src/utils/validate.ts +179 -0
  100. package/src/utils/web3.ts +132 -0
@@ -5,11 +5,12 @@ import abi from "@/abi";
5
5
  import { Transaction } from "@/db";
6
6
  import {
7
7
  buildSignatureBytes,
8
+ generateGnosisSignatureMessage,
8
9
  generateGnosisTransaction,
9
- generateInteropTransactionHash,
10
10
  getContract,
11
+ getGnosisOwnerPeerIds,
12
+ getGnosisSignatureAddress,
11
13
  getRpcProviderUrl,
12
- LiquidityError,
13
14
  Signature,
14
15
  } from "@/utils";
15
16
  import { addresses, blockConfirmations } from "@/constants";
@@ -22,9 +23,11 @@ import { buildGnosisAction } from "@/gnosis";
22
23
  import { peerPool, protocol } from "@/net";
23
24
  import { LogDescription } from "ethers/lib/utils";
24
25
  import wait from "waait";
26
+ import { LiquidityError } from "@/errors";
27
+ import { JsonRpcRetryProvider } from "@/providers";
25
28
 
26
- class ProcessValidateEvents extends BaseTask {
27
- sourceProvider: ethers.providers.JsonRpcProvider;
29
+ export default class ProcessValidateEvents extends BaseTask {
30
+ sourceProvider: JsonRpcRetryProvider;
28
31
  chainId: ChainId;
29
32
  leadNodeOnly: boolean = true;
30
33
  blockConfirmationsCount: number = 12;
@@ -75,7 +78,7 @@ class ProcessValidateEvents extends BaseTask {
75
78
 
76
79
  const { sourceChainId, targetChainId } = transaction.validateEvent
77
80
 
78
- const targetProvider = new ethers.providers.JsonRpcProvider(
81
+ const targetProvider = new JsonRpcRetryProvider(
79
82
  getRpcProviderUrl(targetChainId as ChainId)
80
83
  );
81
84
 
@@ -141,13 +144,9 @@ class ProcessValidateEvents extends BaseTask {
141
144
  targetGnosisContract
142
145
  );
143
146
 
144
- const owners = await targetGnosisContract
145
- .getOwners()
146
- .then((owners) => owners.map((owner) => owner.toLowerCase()));
147
-
148
- const ownerPeerIds = peerPool.activePeers
149
- .filter((peer) => owners.includes(peer.publicAddress.toLowerCase()))
150
- .map((peer) => peer.id);
147
+ const ownerPeerIds = await getGnosisOwnerPeerIds({
148
+ gnosisContract: targetGnosisContract,
149
+ });
151
150
 
152
151
  console.log(
153
152
  `Collecting signatures for execution ${transaction.transactionHash}`
@@ -155,6 +154,14 @@ class ProcessValidateEvents extends BaseTask {
155
154
 
156
155
  console.log(ownerPeerIds);
157
156
 
157
+ const message = generateGnosisSignatureMessage({
158
+ to: addresses[targetChainId].multisend,
159
+ data,
160
+ chainId: targetChainId as ChainId,
161
+ safeTxGas: gnosisTx.safeTxGas,
162
+ nonce: gnosisTx.safeNonce,
163
+ });
164
+
158
165
  const signatures = await protocol.requestSignatures(
159
166
  {
160
167
  type: "target",
@@ -166,9 +173,27 @@ class ProcessValidateEvents extends BaseTask {
166
173
  ownerPeerIds
167
174
  );
168
175
 
169
- const validSignatures = signatures.filter(
170
- (s) => !!s.data && s.data !== "0x"
171
- ) as Signature[];
176
+ const validSignatures = signatures
177
+ .filter(
178
+ (s) => !!s.data && s.data !== "0x"
179
+ )
180
+ .filter((s) => {
181
+
182
+ try {
183
+
184
+ const address = getGnosisSignatureAddress({
185
+ message,
186
+ signature: s.data!,
187
+ chainId: targetChainId as ChainId,
188
+ })
189
+
190
+ return address?.toLowerCase() === s.signer.toLowerCase();
191
+
192
+ } catch (error) {
193
+ return false
194
+ }
195
+
196
+ }) as Signature[];
172
197
 
173
198
  console.log({
174
199
  signatures,
@@ -263,12 +288,10 @@ class ProcessValidateEvents extends BaseTask {
263
288
  async start(): Promise<void> {
264
289
  this.blockConfirmationsCount = blockConfirmations[this.chainId] + 1;
265
290
 
266
- this.sourceProvider = new ethers.providers.JsonRpcProvider(
291
+ this.sourceProvider = new JsonRpcRetryProvider(
267
292
  getRpcProviderUrl(this.chainId)
268
293
  );
269
294
 
270
295
  await super.start();
271
296
  }
272
- }
273
-
274
- export default ProcessValidateEvents;
297
+ }
@@ -13,10 +13,11 @@ import { ChainId } from "@/types";
13
13
  import config from "@/config";
14
14
  import { InteropX } from "@/typechain";
15
15
  import { Op } from "sequelize";
16
+ import { JsonRpcRetryProvider } from "@/providers";
16
17
 
17
- class SyncLogExecuteEvents extends BaseTask {
18
+ export default class SyncLogExecuteEvents extends BaseTask {
18
19
  contractAddress: string;
19
- provider: ethers.providers.JsonRpcProvider;
20
+ provider: JsonRpcRetryProvider;
20
21
  contract: InteropX;
21
22
  targetChainId: ChainId;
22
23
 
@@ -132,7 +133,7 @@ class SyncLogExecuteEvents extends BaseTask {
132
133
 
133
134
  await transaction.save();
134
135
 
135
- this.logger.info(`New InteropX tranaction: ${transactionHash} `);
136
+ this.logger.info(`New InteropX transaction: ${transactionHash} `);
136
137
  } catch (error) {
137
138
  this.logger.error(error);
138
139
  }
@@ -145,7 +146,7 @@ class SyncLogExecuteEvents extends BaseTask {
145
146
  async start(): Promise<void> {
146
147
  this.contractAddress = addresses[this.targetChainId].interopX;
147
148
 
148
- this.provider = new ethers.providers.JsonRpcProvider(
149
+ this.provider = new JsonRpcRetryProvider(
149
150
  getRpcProviderUrl(this.targetChainId)
150
151
  );
151
152
 
@@ -158,5 +159,3 @@ class SyncLogExecuteEvents extends BaseTask {
158
159
  await super.start();
159
160
  }
160
161
  }
161
-
162
- export default SyncLogExecuteEvents;
@@ -12,10 +12,11 @@ import { addresses } from "@/constants";
12
12
  import { ChainId } from "@/types";
13
13
  import config from "@/config";
14
14
  import { InteropX } from "@/typechain";
15
+ import { JsonRpcRetryProvider } from "@/providers";
15
16
 
16
- class SyncLogSubmitEvents extends BaseTask {
17
+ export default class SyncLogSubmitEvents extends BaseTask {
17
18
  contractAddress: string;
18
- provider: ethers.providers.JsonRpcProvider;
19
+ provider: JsonRpcRetryProvider;
19
20
  contract: InteropX;
20
21
  chainId: ChainId;
21
22
 
@@ -109,7 +110,7 @@ class SyncLogSubmitEvents extends BaseTask {
109
110
  },
110
111
  });
111
112
 
112
- this.logger.info(`New InteropX tranaction: ${transactionHash} `);
113
+ this.logger.info(`New InteropX transaction: ${transactionHash} `);
113
114
  } catch (error) {
114
115
  this.logger.error(error);
115
116
  }
@@ -122,7 +123,7 @@ class SyncLogSubmitEvents extends BaseTask {
122
123
  async start(): Promise<void> {
123
124
  this.contractAddress = addresses[this.chainId].interopX;
124
125
 
125
- this.provider = new ethers.providers.JsonRpcProvider(
126
+ this.provider = new JsonRpcRetryProvider(
126
127
  getRpcProviderUrl(this.chainId)
127
128
  );
128
129
 
@@ -134,6 +135,4 @@ class SyncLogSubmitEvents extends BaseTask {
134
135
 
135
136
  await super.start();
136
137
  }
137
- }
138
-
139
- export default SyncLogSubmitEvents;
138
+ }
@@ -13,10 +13,11 @@ import { ChainId } from "@/types";
13
13
  import config from "@/config";
14
14
  import { InteropX } from "@/typechain";
15
15
  import { Op } from "sequelize";
16
+ import { JsonRpcRetryProvider } from "@/providers";
16
17
 
17
- class SyncLogValidateEvents extends BaseTask {
18
+ export default class SyncLogValidateEvents extends BaseTask {
18
19
  contractAddress: string;
19
- provider: ethers.providers.JsonRpcProvider;
20
+ provider: JsonRpcRetryProvider;
20
21
  contract: InteropX;
21
22
  chainId: ChainId;
22
23
 
@@ -122,7 +123,7 @@ class SyncLogValidateEvents extends BaseTask {
122
123
  }
123
124
  await transaction.save();
124
125
 
125
- this.logger.info(`New InteropX tranaction: ${transactionHash} `);
126
+ this.logger.info(`New InteropX transaction: ${transactionHash} `);
126
127
  } catch (error) {
127
128
  this.logger.error(error);
128
129
  }
@@ -135,7 +136,7 @@ class SyncLogValidateEvents extends BaseTask {
135
136
  async start(): Promise<void> {
136
137
  this.contractAddress = addresses[this.chainId].interopX;
137
138
 
138
- this.provider = new ethers.providers.JsonRpcProvider(
139
+ this.provider = new JsonRpcRetryProvider(
139
140
  getRpcProviderUrl(this.chainId)
140
141
  );
141
142
 
@@ -147,6 +148,4 @@ class SyncLogValidateEvents extends BaseTask {
147
148
 
148
149
  await super.start();
149
150
  }
150
- }
151
-
152
- export default SyncLogValidateEvents;
151
+ }
@@ -6,7 +6,7 @@ import SyncTransactionStatusTask from "./Transactions/SyncTransactionStatusTask"
6
6
  import AutoUpdateTask from "./AutoUpdateTask";
7
7
 
8
8
  import SyncLogSubmitEvents from "./InteropX/SyncLogSubmitEvents";
9
- import ProcessSubmitSubmitEvents from "./InteropX/ProcessSubmitSubmitEvents";
9
+ import ProcessSubmitEvents from "./InteropX/ProcessSubmitEvents";
10
10
  import SyncLogValidateEvents from "./InteropX/SyncLogValidateEvents";
11
11
  import ProcessValidateEvents from "./InteropX/ProcessValidateEvents";
12
12
  import SyncLogExecuteEvents from "./InteropX/SyncLogExecuteEvents";
@@ -14,15 +14,14 @@ import SyncLogExecuteEvents from "./InteropX/SyncLogExecuteEvents";
14
14
  export class Tasks {
15
15
 
16
16
  tasks: BaseTask[] = [
17
- // new SyncTransactionStatusTask(),
18
17
  new AutoUpdateTask(),
19
18
 
20
19
  // InteropX
21
20
  new SyncLogSubmitEvents({ chainId: 137 }),
22
21
  new SyncLogSubmitEvents({ chainId: 43114 }),
23
22
 
24
- new ProcessSubmitSubmitEvents({ chainId: 137 }),
25
- new ProcessSubmitSubmitEvents({ chainId: 43114 }),
23
+ new ProcessSubmitEvents({ chainId: 137 }),
24
+ new ProcessSubmitEvents({ chainId: 43114 }),
26
25
 
27
26
  new SyncLogValidateEvents({ chainId: 137 }),
28
27
  new SyncLogValidateEvents({ chainId: 43114 }),