@paraswap/dex-lib 3.8.38 → 3.8.39-1701-1507-1721

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 (198) hide show
  1. package/build/abi/USDM.json +807 -0
  2. package/build/abi/bebop/BebopSettlement.abi.json +2137 -0
  3. package/build/abi/wUSDM.json +757 -0
  4. package/build/config.js +16 -9
  5. package/build/config.js.map +1 -1
  6. package/build/dex/aave-v2/aave-v2.d.ts +1 -0
  7. package/build/dex/aave-v2/aave-v2.js +1 -0
  8. package/build/dex/aave-v2/aave-v2.js.map +1 -1
  9. package/build/dex/aave-v3/aave-v3.d.ts +1 -0
  10. package/build/dex/aave-v3/aave-v3.js +1 -0
  11. package/build/dex/aave-v3/aave-v3.js.map +1 -1
  12. package/build/dex/aave-v3-stata/aave-v3-stata.d.ts +1 -0
  13. package/build/dex/aave-v3-stata/aave-v3-stata.js +1 -0
  14. package/build/dex/aave-v3-stata/aave-v3-stata.js.map +1 -1
  15. package/build/dex/bancor/bancor.d.ts +1 -0
  16. package/build/dex/bancor/bancor.js +1 -0
  17. package/build/dex/bancor/bancor.js.map +1 -1
  18. package/build/dex/bebop/bebop.d.ts +55 -0
  19. package/build/dex/bebop/bebop.js +524 -0
  20. package/build/dex/bebop/bebop.js.map +1 -0
  21. package/build/dex/bebop/config.d.ts +3 -0
  22. package/build/dex/bebop/config.js +38 -0
  23. package/build/dex/bebop/config.js.map +1 -0
  24. package/build/dex/bebop/constants.d.ts +9 -0
  25. package/build/dex/bebop/constants.js +13 -0
  26. package/build/dex/bebop/constants.js.map +1 -0
  27. package/build/dex/bebop/rate-fetcher.d.ts +22 -0
  28. package/build/dex/bebop/rate-fetcher.js +80 -0
  29. package/build/dex/bebop/rate-fetcher.js.map +1 -0
  30. package/build/dex/bebop/types.d.ts +76 -0
  31. package/build/dex/bebop/types.js +3 -0
  32. package/build/dex/bebop/types.js.map +1 -0
  33. package/build/dex/bebop/validators.d.ts +4 -0
  34. package/build/dex/bebop/validators.js +42 -0
  35. package/build/dex/bebop/validators.js.map +1 -0
  36. package/build/dex/bebop/websocket-fetcher.d.ts +35 -0
  37. package/build/dex/bebop/websocket-fetcher.js +87 -0
  38. package/build/dex/bebop/websocket-fetcher.js.map +1 -0
  39. package/build/dex/compound/compound.d.ts +1 -0
  40. package/build/dex/compound/compound.js +1 -0
  41. package/build/dex/compound/compound.js.map +1 -1
  42. package/build/dex/curve-v1/curve-v1.d.ts +1 -0
  43. package/build/dex/curve-v1/curve-v1.js +1 -0
  44. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  45. package/build/dex/dodo-v1/dodo-v1.d.ts +1 -0
  46. package/build/dex/dodo-v1/dodo-v1.js +1 -0
  47. package/build/dex/dodo-v1/dodo-v1.js.map +1 -1
  48. package/build/dex/hashflow/hashflow.d.ts +6 -4
  49. package/build/dex/hashflow/hashflow.js +183 -29
  50. package/build/dex/hashflow/hashflow.js.map +1 -1
  51. package/build/dex/hashflow/types.d.ts +2 -0
  52. package/build/dex/hashflow/types.js.map +1 -1
  53. package/build/dex/idex.d.ts +8 -1
  54. package/build/dex/index.js +2 -0
  55. package/build/dex/index.js.map +1 -1
  56. package/build/dex/jarvis-v6/jarvis-v6.d.ts +1 -0
  57. package/build/dex/jarvis-v6/jarvis-v6.js +1 -0
  58. package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -1
  59. package/build/dex/lido/lido.d.ts +1 -0
  60. package/build/dex/lido/lido.js +1 -0
  61. package/build/dex/lido/lido.js.map +1 -1
  62. package/build/dex/lite-psm/lite-psm.d.ts +1 -0
  63. package/build/dex/lite-psm/lite-psm.js +1 -0
  64. package/build/dex/lite-psm/lite-psm.js.map +1 -1
  65. package/build/dex/maker-psm/maker-psm.d.ts +1 -0
  66. package/build/dex/maker-psm/maker-psm.js +1 -0
  67. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  68. package/build/dex/nerve/nerve.d.ts +1 -0
  69. package/build/dex/nerve/nerve.js +1 -0
  70. package/build/dex/nerve/nerve.js.map +1 -1
  71. package/build/dex/polygon-migrator/polygon-migrator.d.ts +1 -0
  72. package/build/dex/polygon-migrator/polygon-migrator.js +1 -0
  73. package/build/dex/polygon-migrator/polygon-migrator.js.map +1 -1
  74. package/build/dex/simple-exchange.d.ts +3 -1
  75. package/build/dex/simple-exchange.js +1 -0
  76. package/build/dex/simple-exchange.js.map +1 -1
  77. package/build/dex/smoothy/smoothy.d.ts +1 -0
  78. package/build/dex/smoothy/smoothy.js +1 -0
  79. package/build/dex/smoothy/smoothy.js.map +1 -1
  80. package/build/dex/spark/config.js +8 -0
  81. package/build/dex/spark/config.js.map +1 -1
  82. package/build/dex/spark/spark.d.ts +4 -1
  83. package/build/dex/spark/spark.js +20 -15
  84. package/build/dex/spark/spark.js.map +1 -1
  85. package/build/dex/spark/types.d.ts +9 -0
  86. package/build/dex/spark/types.js +8 -1
  87. package/build/dex/spark/types.js.map +1 -1
  88. package/build/dex/stable-pool/stable-pool.d.ts +3 -2
  89. package/build/dex/stable-pool/stable-pool.js +2 -1
  90. package/build/dex/stable-pool/stable-pool.js.map +1 -1
  91. package/build/dex/swaap-v2/swaap-v2.d.ts +5 -3
  92. package/build/dex/swaap-v2/swaap-v2.js +112 -21
  93. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  94. package/build/dex/swaap-v2/types.d.ts +2 -0
  95. package/build/dex/swaap-v2/types.js.map +1 -1
  96. package/build/dex/trader-joe-v2.1/base.d.ts +1 -0
  97. package/build/dex/trader-joe-v2.1/base.js +1 -0
  98. package/build/dex/trader-joe-v2.1/base.js.map +1 -1
  99. package/build/dex/weth/weth.d.ts +1 -0
  100. package/build/dex/weth/weth.js +1 -0
  101. package/build/dex/weth/weth.js.map +1 -1
  102. package/build/dex/woo-fi-v2/woo-fi-v2-pool.d.ts +2 -2
  103. package/build/dex/woo-fi-v2/woo-fi-v2-pool.js +30 -9
  104. package/build/dex/woo-fi-v2/woo-fi-v2-pool.js.map +1 -1
  105. package/build/dex/woo-fi-v2/woo-fi-v2.js +1 -1
  106. package/build/dex/woo-fi-v2/woo-fi-v2.js.map +1 -1
  107. package/build/dex/wusdm/config.d.ts +3 -0
  108. package/build/dex/wusdm/config.js +29 -0
  109. package/build/dex/wusdm/config.js.map +1 -0
  110. package/build/dex/wusdm/types.d.ts +10 -0
  111. package/build/dex/wusdm/types.js +3 -0
  112. package/build/dex/wusdm/types.js.map +1 -0
  113. package/build/dex/wusdm/wusdm.d.ts +39 -0
  114. package/build/dex/wusdm/wusdm.js +212 -0
  115. package/build/dex/wusdm/wusdm.js.map +1 -0
  116. package/build/executor/Executor01BytecodeBuilder.d.ts +3 -3
  117. package/build/executor/Executor01BytecodeBuilder.js +65 -16
  118. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  119. package/build/executor/Executor02BytecodeBuilder.d.ts +4 -4
  120. package/build/executor/Executor02BytecodeBuilder.js +65 -18
  121. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  122. package/build/executor/Executor03BytecodeBuilder.d.ts +2 -2
  123. package/build/executor/Executor03BytecodeBuilder.js +52 -8
  124. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  125. package/build/executor/ExecutorBytecodeBuilder.d.ts +5 -4
  126. package/build/executor/ExecutorBytecodeBuilder.js +4 -4
  127. package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
  128. package/build/executor/ExecutorDetector.js +2 -1
  129. package/build/executor/ExecutorDetector.js.map +1 -1
  130. package/build/executor/types.d.ts +1 -0
  131. package/build/executor/types.js +1 -0
  132. package/build/executor/types.js.map +1 -1
  133. package/build/generic-swap-transaction-builder.d.ts +2 -0
  134. package/build/generic-swap-transaction-builder.js +49 -11
  135. package/build/generic-swap-transaction-builder.js.map +1 -1
  136. package/build/implementations/local-paraswap-sdk.js +3 -1
  137. package/build/implementations/local-paraswap-sdk.js.map +1 -1
  138. package/build/lib/fetcher/wsFetcher.d.ts +35 -0
  139. package/build/lib/fetcher/wsFetcher.js +87 -0
  140. package/build/lib/fetcher/wsFetcher.js.map +1 -0
  141. package/build/router/simpleswap.js +51 -13
  142. package/build/router/simpleswap.js.map +1 -1
  143. package/build/types.d.ts +2 -0
  144. package/package.json +4 -2
  145. package/src/abi/bebop/BebopSettlement.abi.json +2137 -0
  146. package/src/config.ts +17 -9
  147. package/src/dex/aave-v2/aave-v2.ts +2 -0
  148. package/src/dex/aave-v3/aave-v3.ts +2 -0
  149. package/src/dex/aave-v3-stata/aave-v3-stata.ts +2 -0
  150. package/src/dex/bancor/bancor.ts +2 -0
  151. package/src/dex/bebop/bebop-e2e.test.ts +195 -0
  152. package/src/dex/bebop/bebop-integration.test.ts +170 -0
  153. package/src/dex/bebop/bebop.ts +732 -0
  154. package/src/dex/bebop/config.ts +37 -0
  155. package/src/dex/bebop/constants.ts +9 -0
  156. package/src/dex/bebop/rate-fetcher.ts +138 -0
  157. package/src/dex/bebop/types.ts +81 -0
  158. package/src/dex/bebop/validators.ts +43 -0
  159. package/src/dex/compound/compound.ts +2 -0
  160. package/src/dex/curve-v1/curve-v1.ts +2 -0
  161. package/src/dex/dodo-v1/dodo-v1.ts +2 -0
  162. package/src/dex/hashflow/hashflow-e2e.test.ts +281 -28
  163. package/src/dex/hashflow/hashflow.ts +285 -54
  164. package/src/dex/hashflow/types.ts +2 -0
  165. package/src/dex/idex.ts +18 -1
  166. package/src/dex/index.ts +2 -0
  167. package/src/dex/jarvis-v6/jarvis-v6.ts +2 -0
  168. package/src/dex/lido/lido.ts +2 -0
  169. package/src/dex/lite-psm/lite-psm.ts +2 -0
  170. package/src/dex/maker-psm/maker-psm.ts +2 -0
  171. package/src/dex/nerve/nerve.ts +2 -0
  172. package/src/dex/polygon-migrator/polygon-migrator.ts +2 -0
  173. package/src/dex/simple-exchange.ts +4 -2
  174. package/src/dex/smoothy/smoothy.ts +2 -0
  175. package/src/dex/spark/config.ts +8 -1
  176. package/src/dex/spark/spark.ts +27 -18
  177. package/src/dex/spark/types.ts +10 -0
  178. package/src/dex/stable-pool/stable-pool.ts +4 -1
  179. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +13 -13
  180. package/src/dex/swaap-v2/swaap-v2.ts +217 -32
  181. package/src/dex/swaap-v2/types.ts +2 -0
  182. package/src/dex/trader-joe-v2.1/base.ts +2 -0
  183. package/src/dex/weth/weth.ts +2 -0
  184. package/src/dex/woo-fi-v2/woo-fi-v2-pool.ts +58 -27
  185. package/src/dex/woo-fi-v2/woo-fi-v2.ts +1 -2
  186. package/src/executor/Executor01BytecodeBuilder.ts +105 -11
  187. package/src/executor/Executor02BytecodeBuilder.ts +95 -8
  188. package/src/executor/Executor03BytecodeBuilder.ts +89 -5
  189. package/src/executor/ExecutorBytecodeBuilder.ts +6 -0
  190. package/src/executor/ExecutorDetector.ts +2 -1
  191. package/src/executor/types.ts +1 -0
  192. package/src/generic-swap-transaction-builder.ts +96 -24
  193. package/src/implementations/local-paraswap-sdk.ts +21 -10
  194. package/src/lib/fetcher/wsFetcher.ts +126 -0
  195. package/src/router/simpleswap.ts +94 -18
  196. package/src/types.ts +2 -0
  197. package/tests/constants-e2e.ts +2 -2
  198. package/tests/utils-e2e.ts +308 -2
@@ -6,7 +6,7 @@ import {
6
6
  TxInfo,
7
7
  SimpleExchangeParam,
8
8
  } from '../types';
9
- import { SwapSide } from '../constants';
9
+ import { ETHER_ADDRESS, SwapSide } from '../constants';
10
10
  import IParaswapABI from '../abi/IParaswap.json';
11
11
  import { Interface } from '@ethersproject/abi';
12
12
  import { isETHAddress, uuidToBytes16 } from '../utils';
@@ -95,9 +95,11 @@ export abstract class SimpleRouterBase<RouterParam>
95
95
  swap.swapExchanges.map(async se => {
96
96
  const dex = this.dexAdapterService.getTxBuilderDexByKey(se.exchange);
97
97
  let _src = swap.srcToken;
98
- let wethDeposit = 0n;
98
+ let wethDepositForNeedWrapNative = 0n;
99
+ let wethDepositForNeedUnwrapWeth = 0n;
99
100
  let _dest = swap.destToken;
100
- let wethWithdraw = 0n;
101
+ let wethWithdrawForNeedWrapNative = 0n;
102
+ let wethWithdrawForNeedUnwrapWeth = 0n;
101
103
 
102
104
  // For case of buy apply slippage is applied to srcAmount in equal proportion as the complete swap
103
105
  // This assumes that the sum of all swaps srcAmount would sum to priceRoute.srcAmount
@@ -115,13 +117,23 @@ export abstract class SimpleRouterBase<RouterParam>
115
117
  // should work if the final slippage check passes.
116
118
  const _destAmount = this.side === SwapSide.SELL ? '1' : se.destAmount;
117
119
 
118
- if (dex.needWrapNative) {
120
+ const dexNeedWrapNative =
121
+ typeof dex.needWrapNative === 'function'
122
+ ? dex.needWrapNative(priceRoute, swap, se)
123
+ : dex.needWrapNative;
124
+
125
+ const dexNeedUnwrapWeth =
126
+ typeof dex.needUnwrapWeth === 'function'
127
+ ? dex.needUnwrapWeth(priceRoute, swap, se)
128
+ : dex.needUnwrapWeth;
129
+
130
+ if (dexNeedWrapNative) {
119
131
  if (isETHAddress(swap.srcToken)) {
120
132
  if (swapIndex !== 0) {
121
133
  throw new Error('Wrap native srcToken not in swapIndex 0');
122
134
  }
123
135
  _src = wethAddress;
124
- wethDeposit = BigInt(_srcAmount);
136
+ wethDepositForNeedWrapNative = BigInt(_srcAmount);
125
137
  }
126
138
 
127
139
  if (isETHAddress(swap.destToken)) {
@@ -129,7 +141,21 @@ export abstract class SimpleRouterBase<RouterParam>
129
141
  throw new Error('Wrap native destToken not in swapIndex last');
130
142
  }
131
143
  _dest = wethAddress;
132
- wethWithdraw = BigInt(_destAmount);
144
+ wethWithdrawForNeedWrapNative = BigInt(_destAmount);
145
+ }
146
+ }
147
+
148
+ if (dexNeedUnwrapWeth) {
149
+ const wethAddr =
150
+ this.dexAdapterService.dexHelper.config.data.wrappedNativeTokenAddress.toLowerCase();
151
+ if (swap.srcToken.toLowerCase() === wethAddr) {
152
+ _src = ETHER_ADDRESS;
153
+ wethWithdrawForNeedUnwrapWeth = BigInt(_srcAmount);
154
+ }
155
+
156
+ if (swap.destToken.toLowerCase() === wethAddr) {
157
+ _dest = ETHER_ADDRESS;
158
+ wethDepositForNeedUnwrapWeth = BigInt(se.destAmount); // cant use _destAmount here because _destAmount could be 1
133
159
  }
134
160
  }
135
161
 
@@ -144,8 +170,10 @@ export abstract class SimpleRouterBase<RouterParam>
144
170
 
145
171
  return {
146
172
  simpleParams,
147
- wethDeposit,
148
- wethWithdraw,
173
+ wethDepositForNeedWrapNative,
174
+ wethWithdrawForNeedWrapNative,
175
+ wethWithdrawForNeedUnwrapWeth,
176
+ wethDepositForNeedUnwrapWeth,
149
177
  };
150
178
  }),
151
179
  ),
@@ -153,16 +181,30 @@ export abstract class SimpleRouterBase<RouterParam>
153
181
 
154
182
  const {
155
183
  simpleExchangeDataList,
156
- srcAmountWethToDeposit,
157
- destAmountWethToWithdraw,
184
+ srcAmountWethToDepositForNeedWrapNative,
185
+ destAmountWethToWithdrawForNeedWrapNative,
186
+ srcAmountWethToWithdrawForNeedUnwrapWeth,
187
+ destAmountWethToDepositForNeeUnwrapWeth,
158
188
  } = rawSimpleParams.reduce<{
159
189
  simpleExchangeDataList: SimpleExchangeParam[];
160
- srcAmountWethToDeposit: bigint;
161
- destAmountWethToWithdraw: bigint;
190
+ srcAmountWethToDepositForNeedWrapNative: bigint;
191
+ srcAmountWethToWithdrawForNeedUnwrapWeth: bigint;
192
+ destAmountWethToWithdrawForNeedWrapNative: bigint;
193
+ destAmountWethToDepositForNeeUnwrapWeth: bigint;
162
194
  }>(
163
195
  (acc, se) => {
164
- acc.srcAmountWethToDeposit += BigInt(se.wethDeposit);
165
- acc.destAmountWethToWithdraw += BigInt(se.wethWithdraw);
196
+ acc.srcAmountWethToDepositForNeedWrapNative += BigInt(
197
+ se.wethDepositForNeedWrapNative,
198
+ );
199
+ acc.srcAmountWethToWithdrawForNeedUnwrapWeth += BigInt(
200
+ se.wethWithdrawForNeedUnwrapWeth,
201
+ );
202
+ acc.destAmountWethToWithdrawForNeedWrapNative += BigInt(
203
+ se.wethWithdrawForNeedWrapNative,
204
+ );
205
+ acc.destAmountWethToDepositForNeeUnwrapWeth += BigInt(
206
+ se.wethDepositForNeedUnwrapWeth,
207
+ );
166
208
  // V6 doesn't have simpleParams
167
209
  if (se.simpleParams) {
168
210
  acc.simpleExchangeDataList.push(se.simpleParams);
@@ -172,8 +214,10 @@ export abstract class SimpleRouterBase<RouterParam>
172
214
  },
173
215
  {
174
216
  simpleExchangeDataList: [],
175
- srcAmountWethToDeposit: 0n,
176
- destAmountWethToWithdraw: 0n,
217
+ srcAmountWethToDepositForNeedWrapNative: 0n,
218
+ srcAmountWethToWithdrawForNeedUnwrapWeth: 0n,
219
+ destAmountWethToWithdrawForNeedWrapNative: 0n,
220
+ destAmountWethToDepositForNeeUnwrapWeth: 0n,
177
221
  },
178
222
  );
179
223
 
@@ -188,10 +232,16 @@ export abstract class SimpleRouterBase<RouterParam>
188
232
  );
189
233
 
190
234
  const maybeWethCallData = this.getDepositWithdrawWethCallData(
191
- srcAmountWethToDeposit,
192
- destAmountWethToWithdraw,
235
+ srcAmountWethToDepositForNeedWrapNative,
236
+ destAmountWethToWithdrawForNeedWrapNative,
193
237
  );
194
238
 
239
+ const maybeWethCallDataForNeedUnwrapWeth =
240
+ this.getDepositWithdrawWethCallData(
241
+ destAmountWethToDepositForNeeUnwrapWeth,
242
+ srcAmountWethToWithdrawForNeedUnwrapWeth,
243
+ );
244
+
195
245
  if (maybeWethCallData) {
196
246
  if (maybeWethCallData.deposit) {
197
247
  simpleExchangeDataFlat.callees.unshift(
@@ -211,6 +261,32 @@ export abstract class SimpleRouterBase<RouterParam>
211
261
  }
212
262
  }
213
263
 
264
+ if (maybeWethCallDataForNeedUnwrapWeth) {
265
+ if (maybeWethCallDataForNeedUnwrapWeth.withdraw) {
266
+ simpleExchangeDataFlat.callees.unshift(
267
+ maybeWethCallDataForNeedUnwrapWeth.withdraw.callee,
268
+ );
269
+ simpleExchangeDataFlat.values.unshift(
270
+ maybeWethCallDataForNeedUnwrapWeth.withdraw.value,
271
+ );
272
+ simpleExchangeDataFlat.calldata.unshift(
273
+ maybeWethCallDataForNeedUnwrapWeth.withdraw.calldata,
274
+ );
275
+ }
276
+
277
+ if (maybeWethCallDataForNeedUnwrapWeth.deposit) {
278
+ simpleExchangeDataFlat.callees.push(
279
+ maybeWethCallDataForNeedUnwrapWeth.deposit.callee,
280
+ );
281
+ simpleExchangeDataFlat.values.push(
282
+ maybeWethCallDataForNeedUnwrapWeth.deposit.value,
283
+ );
284
+ simpleExchangeDataFlat.calldata.push(
285
+ maybeWethCallDataForNeedUnwrapWeth.deposit.calldata,
286
+ );
287
+ }
288
+ }
289
+
214
290
  return {
215
291
  partialContractSimpleData: this.buildPartialContractSimpleData(
216
292
  simpleExchangeDataFlat,
package/src/types.ts CHANGED
@@ -159,6 +159,7 @@ export type AdapterExchangeParam = {
159
159
 
160
160
  export type DexExchangeParam = {
161
161
  needWrapNative: boolean;
162
+ needUnwrapWeth?: boolean;
162
163
  skipApproval?: boolean;
163
164
  wethAddress?: string;
164
165
  exchangeData: string;
@@ -304,6 +305,7 @@ export type Config = {
304
305
  uniswapV3EventLoggingSampleRate?: number;
305
306
  swaapV2AuthToken?: string;
306
307
  dexalotAuthToken?: string;
308
+ bebopAuthToken?: string;
307
309
  idleDaoAuthToken?: string;
308
310
  forceRpcFallbackDexs: string[];
309
311
  apiKeyTheGraph: string;
@@ -1532,7 +1532,7 @@ export const Holders: {
1532
1532
  AA_iETHv2: '0xA118aD79E2152b9a3c7Df8B8791887762b0f1D49',
1533
1533
  BB_iETHv2: '0x15079cBAa74C1df2a602fAc88Bd5b98B08FfE6A4',
1534
1534
  ETH: '0x176F3DAb24a159341c0509bB36B833E7fdd0a132',
1535
- USDC: '0x7713974908be4bed47172370115e8b1219f4a5f0',
1535
+ USDC: '0xd8A3c2901b736170b70088a0Df9AA914317d43C6',
1536
1536
  USDE: '0x8707f238936c12c309bfc2B9959C35828AcFc512',
1537
1537
  AMPL: '0x223592a191ECfC7FDC38a9256c3BD96E771539A9',
1538
1538
  WBTC: '0x6daB3bCbFb336b29d06B9C793AEF7eaA57888922',
@@ -1770,7 +1770,7 @@ export const Holders: {
1770
1770
  WETH: '0x3368e17064c9ba5d6f1f93c4c678bea00cc78555',
1771
1771
  BAL: '0x7b7b957c284c2c227c980d6e2f804311947b84d0',
1772
1772
  USDCe: '0x62383739d68dd0f844103db8dfb05a7eded5bbe6',
1773
- USDC: '0xb38e8c17e38363af6ebdcb3dae12e0243582891d',
1773
+ USDC: '0x62383739D68Dd0F844103Db8dFb05a7EdED5BBE6',
1774
1774
  OHM: '0xebce5f29ff5ca9aa330ebdf7ec6b5f474bff271e',
1775
1775
  USDT: '0xf977814e90da44bfa03b6295a0616a897441acec',
1776
1776
  POPS: '0x4b78b52e7de4d8b7d367297cb8a87c1875a9d591',
@@ -59,6 +59,7 @@ import * as util from 'util';
59
59
  import { GenericSwapTransactionBuilder } from '../src/generic-swap-transaction-builder';
60
60
  import { DexAdapterService, PricingHelper } from '../src';
61
61
  import { v4 as uuid } from 'uuid';
62
+ import { OptimalRoute } from '../build/types';
62
63
 
63
64
  export const testingEndpoint = process.env.E2E_TEST_ENDPOINT;
64
65
 
@@ -127,6 +128,10 @@ class APIParaswapSDK implements IParaSwapSDK {
127
128
  rpcUrl: string,
128
129
  ) {
129
130
  this.dexKeys = Array.isArray(dexKeys) ? dexKeys : [dexKeys];
131
+
132
+ console.log('testingEndpoint: ', testingEndpoint);
133
+ console.log('this.dexKeys: ', this.dexKeys);
134
+
130
135
  this.paraSwap = constructSimpleSDK({
131
136
  version: ParaSwapVersion.V6,
132
137
  chainId: network,
@@ -168,6 +173,7 @@ class APIParaswapSDK implements IParaSwapSDK {
168
173
  throw new Error('PoolIdentifiers is not supported by the API');
169
174
 
170
175
  let priceRoute;
176
+ console.log('forceRoute: ', forceRoute);
171
177
  if (forceRoute && forceRoute.length > 0) {
172
178
  const options = {
173
179
  route: forceRoute,
@@ -178,7 +184,7 @@ class APIParaswapSDK implements IParaSwapSDK {
178
184
  options: {
179
185
  includeDEXS: this.dexKeys,
180
186
  includeContractMethods: [contractMethod],
181
- partner: 'any',
187
+ partner: 'paraswap.io-staging',
182
188
  maxImpact: 100,
183
189
  },
184
190
  ...transferFees,
@@ -193,7 +199,7 @@ class APIParaswapSDK implements IParaSwapSDK {
193
199
  options: {
194
200
  includeDEXS: this.dexKeys,
195
201
  includeContractMethods: [contractMethod],
196
- partner: 'any',
202
+ partner: 'paraswap.io-staging',
197
203
  maxImpact: 100,
198
204
  },
199
205
  ...transferFees,
@@ -499,6 +505,306 @@ export async function testE2E(
499
505
  forceRoute,
500
506
  );
501
507
 
508
+ // DAI -> USDC -> WETH
509
+ // const priceRoute = {
510
+ // blockNumber: 20829396,
511
+ // network: 1,
512
+ // srcToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
513
+ // srcDecimals: 18,
514
+ // srcAmount: '22675013677618734169',
515
+ // destToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
516
+ // destDecimals: 18,
517
+ // destAmount: '8740886723958239',
518
+ // bestRoute: [
519
+ // {
520
+ // percent: 100,
521
+ // swaps: [
522
+ // {
523
+ // srcToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
524
+ // srcDecimals: 18,
525
+ // destToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
526
+ // destDecimals: 6,
527
+ // swapExchanges: [
528
+ // {
529
+ // exchange: 'Hashflow',
530
+ // srcAmount: '22675013677618734169',
531
+ // destAmount: '22653896',
532
+ // percent: 100,
533
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
534
+ // data: {
535
+ // mm: 'mm21_1',
536
+ // tokenIn: '0x6b175474e89094c44da98b954eedeac495271d0f',
537
+ // tokenOut: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
538
+ // gasUSD: '9.106871',
539
+ // },
540
+ // },
541
+ // ],
542
+ // },
543
+ // {
544
+ // srcToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
545
+ // srcDecimals: 6,
546
+ // destToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
547
+ // destDecimals: 18,
548
+ // swapExchanges: [
549
+ // {
550
+ // exchange: 'Hashflow',
551
+ // srcAmount: '22653896',
552
+ // destAmount: '8740886723958239',
553
+ // percent: 100,
554
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
555
+ // data: {
556
+ // mm: 'mm30_302',
557
+ // tokenIn: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
558
+ // tokenOut: '0x0000000000000000000000000000000000000000',
559
+ // gasUSD: '9.106871',
560
+ // },
561
+ // },
562
+ // ],
563
+ // },
564
+ // ],
565
+ // },
566
+ // ],
567
+ // gasCostUSD: '23.654185',
568
+ // gasCost: '259740',
569
+ // others: [],
570
+ // side: 'SELL',
571
+ // version: '6.2',
572
+ // contractAddress: '0x6a000f20005980200259b80c5102003040001068',
573
+ // tokenTransferProxy: '0x6a000f20005980200259b80c5102003040001068',
574
+ // contractMethod: 'swapExactAmountIn',
575
+ // partnerFee: 0,
576
+ // srcUSD: '22.6576219421',
577
+ // destUSD: '22.5361037872',
578
+ // partner: 'paraswap.io-staging',
579
+ // maxImpactReached: false,
580
+ // hmac: 'a02dfe3450127b33a601d46c0385c8229428e134',
581
+ // } as OptimalRate;
582
+
583
+ // DAI -> ETH -> USDC
584
+ // const priceRoute = {
585
+ // blockNumber: 20834880,
586
+ // network: 1,
587
+ // srcToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
588
+ // srcDecimals: 18,
589
+ // srcAmount: '22675013677618734169',
590
+ // destToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
591
+ // destDecimals: 18,
592
+ // destAmount: '8560020040357109',
593
+ // bestRoute: [
594
+ // {
595
+ // percent: 100,
596
+ // swaps: [
597
+ // {
598
+ // srcToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
599
+ // srcDecimals: 18,
600
+ // destToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
601
+ // destDecimals: 6,
602
+ // swapExchanges: [
603
+ // {
604
+ // exchange: 'Hashflow',
605
+ // srcAmount: '22675013677618734169',
606
+ // destAmount: '22654007',
607
+ // percent: 100,
608
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
609
+ // data: {
610
+ // mm: 'mm21_1',
611
+ // tokenIn: '0x6b175474e89094c44da98b954eedeac495271d0f',
612
+ // tokenOut: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
613
+ // gasUSD: '5.806315',
614
+ // },
615
+ // },
616
+ // ],
617
+ // },
618
+ // {
619
+ // srcToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
620
+ // srcDecimals: 6,
621
+ // destToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
622
+ // destDecimals: 18,
623
+ // swapExchanges: [
624
+ // {
625
+ // exchange: 'Hashflow',
626
+ // srcAmount: '22654007',
627
+ // destAmount: '8560020040357109',
628
+ // percent: 100,
629
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
630
+ // data: {
631
+ // mm: 'mm30_302',
632
+ // tokenIn: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
633
+ // tokenOut: '0x0000000000000000000000000000000000000000',
634
+ // gasUSD: '5.806315',
635
+ // },
636
+ // },
637
+ // ],
638
+ // },
639
+ // ],
640
+ // },
641
+ // ],
642
+ // gasCostUSD: '15.081322',
643
+ // gasCost: '259740',
644
+ // others: [],
645
+ // side: 'SELL',
646
+ // version: '6.2',
647
+ // contractAddress: '0x6a000f20005980200259b80c5102003040001068',
648
+ // tokenTransferProxy: '0x6a000f20005980200259b80c5102003040001068',
649
+ // contractMethod: 'swapExactAmountIn',
650
+ // partnerFee: 0,
651
+ // srcUSD: '22.6976886913',
652
+ // destUSD: '22.5707184416',
653
+ // partner: 'paraswap.io-staging',
654
+ // maxImpactReached: false,
655
+ // hmac: 'e46183c5d45132b9275006da4b94b902c2988c51',
656
+ // } as OptimalRate;
657
+
658
+ // USDC -> ETH -> DAI
659
+ // const priceRoute = {
660
+ // blockNumber: 20834863,
661
+ // network: 1,
662
+ // srcToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
663
+ // srcDecimals: 6,
664
+ // srcAmount: '22943400',
665
+ // destToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
666
+ // destDecimals: 18,
667
+ // destAmount: '22799985410708408682',
668
+ // bestRoute: [
669
+ // {
670
+ // percent: 100,
671
+ // swaps: [
672
+ // {
673
+ // srcToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
674
+ // srcDecimals: 6,
675
+ // destToken: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
676
+ // destDecimals: 18,
677
+ // swapExchanges: [
678
+ // {
679
+ // exchange: 'Hashflow',
680
+ // srcAmount: '22943400',
681
+ // destAmount: '8664664054891136',
682
+ // percent: 100,
683
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
684
+ // data: {
685
+ // mm: 'mm30_302',
686
+ // tokenIn: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
687
+ // tokenOut: '0x0000000000000000000000000000000000000000',
688
+ // gasUSD: '5.392335',
689
+ // },
690
+ // },
691
+ // ],
692
+ // },
693
+ // {
694
+ // srcToken: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
695
+ // srcDecimals: 18,
696
+ // destToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
697
+ // destDecimals: 18,
698
+ // swapExchanges: [
699
+ // {
700
+ // exchange: 'Hashflow',
701
+ // srcAmount: '8664664054891136',
702
+ // destAmount: '22799985410708408682',
703
+ // percent: 100,
704
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
705
+ // data: {
706
+ // mm: 'mm18_1',
707
+ // tokenIn: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
708
+ // tokenOut: '0x6b175474e89094c44da98b954eedeac495271d0f',
709
+ // gasUSD: '5.392335',
710
+ // },
711
+ // },
712
+ // ],
713
+ // },
714
+ // ],
715
+ // },
716
+ // ],
717
+ // gasCostUSD: '14.006051',
718
+ // gasCost: '259740',
719
+ // others: [],
720
+ // side: 'SELL',
721
+ // version: '6.2',
722
+ // contractAddress: '0x6a000f20005980200259b80c5102003040001068',
723
+ // tokenTransferProxy: '0x6a000f20005980200259b80c5102003040001068',
724
+ // contractMethod: 'swapExactAmountIn',
725
+ // partnerFee: 0,
726
+ // srcUSD: '22.9361728290',
727
+ // destUSD: '22.7956249135',
728
+ // partner: 'paraswap.io-staging',
729
+ // maxImpactReached: false,
730
+ // hmac: 'ac9b2534b97a299660a18ffbc9e03e38fcfdb13a',
731
+ // } as OptimalRate;
732
+
733
+ // ETH -> USDC -> DAI
734
+ // const priceRoute = {
735
+ // blockNumber: 20834916,
736
+ // network: 1,
737
+ // srcToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
738
+ // srcDecimals: 18,
739
+ // srcAmount: '8878957204610561',
740
+ // destToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
741
+ // destDecimals: 18,
742
+ // destAmount: '23239932460663978400',
743
+ // bestRoute: [
744
+ // {
745
+ // percent: 100,
746
+ // swaps: [
747
+ // {
748
+ // srcToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
749
+ // srcDecimals: 18,
750
+ // destToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
751
+ // destDecimals: 6,
752
+ // swapExchanges: [
753
+ // {
754
+ // exchange: 'Hashflow',
755
+ // srcAmount: '8878957204610561',
756
+ // destAmount: '23260163',
757
+ // percent: 100,
758
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
759
+ // data: {
760
+ // mm: 'mm30_302',
761
+ // tokenIn: '0x0000000000000000000000000000000000000000',
762
+ // tokenOut: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
763
+ // gasUSD: '5.239797',
764
+ // },
765
+ // },
766
+ // ],
767
+ // },
768
+ // {
769
+ // srcToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
770
+ // srcDecimals: 6,
771
+ // destToken: '0x6b175474e89094c44da98b954eedeac495271d0f',
772
+ // destDecimals: 18,
773
+ // swapExchanges: [
774
+ // {
775
+ // exchange: 'Hashflow',
776
+ // srcAmount: '23260163',
777
+ // destAmount: '23239932460663978400',
778
+ // percent: 100,
779
+ // poolAddresses: ['0x55084eE0fEf03f14a305cd24286359A35D735151'],
780
+ // data: {
781
+ // mm: 'mm21_1',
782
+ // tokenIn: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
783
+ // tokenOut: '0x6b175474e89094c44da98b954eedeac495271d0f',
784
+ // gasUSD: '5.239797',
785
+ // },
786
+ // },
787
+ // ],
788
+ // },
789
+ // ],
790
+ // },
791
+ // ],
792
+ // gasCostUSD: '13.609847',
793
+ // gasCost: '259740',
794
+ // others: [],
795
+ // side: 'SELL',
796
+ // version: '6.2',
797
+ // contractAddress: '0x6a000f20005980200259b80c5102003040001068',
798
+ // tokenTransferProxy: '0x6a000f20005980200259b80c5102003040001068',
799
+ // contractMethod: 'swapExactAmountIn',
800
+ // partnerFee: 0,
801
+ // srcUSD: '23.3602700366',
802
+ // destUSD: '23.2320308836',
803
+ // partner: 'paraswap.io-staging',
804
+ // maxImpactReached: false,
805
+ // hmac: '7afcc0b2ecd48d164bd988ed64f6995a136721a2',
806
+ // } as OptimalRate;
807
+
502
808
  console.log('PRICE ROUTE: ', util.inspect(priceRoute, false, null, true));
503
809
  expect(parseFloat(priceRoute.destAmount)).toBeGreaterThan(0);
504
810