@paraswap/dex-lib 3.8.0 → 3.8.1

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 (224) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/AaveV1_lending_pool.json +27 -0
  5. package/build/abi/platypus/asset.json +490 -0
  6. package/build/abi/platypus/avax-pool.json +820 -0
  7. package/build/abi/platypus/oracle.json +119 -0
  8. package/build/abi/platypus/pool.json +677 -0
  9. package/build/abi/smardex/all/smardex-router.json +648 -0
  10. package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
  11. package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
  12. package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
  13. package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
  14. package/build/abi/swaap-v1/pool.json +1346 -0
  15. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  16. package/build/abi/wombat/pool.json +1289 -0
  17. package/build/dex/aave-v1/aave-v1.d.ts +34 -0
  18. package/build/dex/aave-v1/aave-v1.js +181 -0
  19. package/build/dex/aave-v1/aave-v1.js.map +1 -0
  20. package/build/dex/aave-v1/config.d.ts +11 -0
  21. package/build/dex/aave-v1/config.js +20 -0
  22. package/build/dex/aave-v1/config.js.map +1 -0
  23. package/build/dex/aave-v1/tokens-mainnet.json +134 -0
  24. package/build/dex/aave-v1/tokens.d.ts +3 -0
  25. package/build/dex/aave-v1/tokens.js +50 -0
  26. package/build/dex/aave-v1/tokens.js.map +1 -0
  27. package/build/dex/aave-v1/types.d.ts +12 -0
  28. package/build/dex/aave-v1/types.js +3 -0
  29. package/build/dex/aave-v1/types.js.map +1 -0
  30. package/build/dex/aave-v2/tokens-avalanche.json +44 -0
  31. package/build/dex/aave-v2/tokens-mainnet.json +188 -0
  32. package/build/dex/aave-v2/tokens-polygon.json +44 -0
  33. package/build/dex/bProtocol.d.ts +18 -0
  34. package/build/dex/bProtocol.js +39 -0
  35. package/build/dex/bProtocol.js.map +1 -0
  36. package/build/dex/bancor.d.ts +26 -0
  37. package/build/dex/bancor.js +58 -0
  38. package/build/dex/bancor.js.map +1 -0
  39. package/build/dex/compound.d.ts +18 -0
  40. package/build/dex/compound.js +46 -0
  41. package/build/dex/compound.js.map +1 -0
  42. package/build/dex/curve-v2.d.ts +58 -0
  43. package/build/dex/curve-v2.js +180 -0
  44. package/build/dex/curve-v2.js.map +1 -0
  45. package/build/dex/dodo-v1.d.ts +33 -0
  46. package/build/dex/dodo-v1.js +63 -0
  47. package/build/dex/dodo-v1.js.map +1 -0
  48. package/build/dex/index.js +1 -19
  49. package/build/dex/index.js.map +1 -1
  50. package/build/dex/lido.d.ts +19 -0
  51. package/build/dex/lido.js +42 -0
  52. package/build/dex/lido.js.map +1 -0
  53. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  54. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  55. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  56. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  57. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  58. package/build/dex/onebit.d.ts +25 -0
  59. package/build/dex/onebit.js +42 -0
  60. package/build/dex/onebit.js.map +1 -0
  61. package/build/dex/platypus/asset.d.ts +14 -0
  62. package/build/dex/platypus/asset.js +97 -0
  63. package/build/dex/platypus/asset.js.map +1 -0
  64. package/build/dex/platypus/config.d.ts +11 -0
  65. package/build/dex/platypus/config.js +69 -0
  66. package/build/dex/platypus/config.js.map +1 -0
  67. package/build/dex/platypus/platypus.d.ts +63 -0
  68. package/build/dex/platypus/platypus.js +487 -0
  69. package/build/dex/platypus/platypus.js.map +1 -0
  70. package/build/dex/platypus/pool-avax.d.ts +8 -0
  71. package/build/dex/platypus/pool-avax.js +54 -0
  72. package/build/dex/platypus/pool-avax.js.map +1 -0
  73. package/build/dex/platypus/pool-base.d.ts +19 -0
  74. package/build/dex/platypus/pool-base.js +86 -0
  75. package/build/dex/platypus/pool-base.js.map +1 -0
  76. package/build/dex/platypus/pool-pure.d.ts +8 -0
  77. package/build/dex/platypus/pool-pure.js +37 -0
  78. package/build/dex/platypus/pool-pure.js.map +1 -0
  79. package/build/dex/platypus/pool-subscriber.d.ts +14 -0
  80. package/build/dex/platypus/pool-subscriber.js +167 -0
  81. package/build/dex/platypus/pool-subscriber.js.map +1 -0
  82. package/build/dex/platypus/pool.d.ts +8 -0
  83. package/build/dex/platypus/pool.js +58 -0
  84. package/build/dex/platypus/pool.js.map +1 -0
  85. package/build/dex/platypus/types.d.ts +92 -0
  86. package/build/dex/platypus/types.js +10 -0
  87. package/build/dex/platypus/types.js.map +1 -0
  88. package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
  89. package/build/dex/quickswap/spiritswap-v3.js +19 -0
  90. package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
  91. package/build/dex/smardex/config.d.ts +4 -0
  92. package/build/dex/smardex/config.js +64 -0
  93. package/build/dex/smardex/config.js.map +1 -0
  94. package/build/dex/smardex/constants.d.ts +18 -0
  95. package/build/dex/smardex/constants.js +33 -0
  96. package/build/dex/smardex/constants.js.map +1 -0
  97. package/build/dex/smardex/sdk/constants.d.ts +6 -0
  98. package/build/dex/smardex/sdk/constants.js +13 -0
  99. package/build/dex/smardex/sdk/constants.js.map +1 -0
  100. package/build/dex/smardex/sdk/core.d.ts +113 -0
  101. package/build/dex/smardex/sdk/core.js +499 -0
  102. package/build/dex/smardex/sdk/core.js.map +1 -0
  103. package/build/dex/smardex/sdk/errors.d.ts +15 -0
  104. package/build/dex/smardex/sdk/errors.js +22 -0
  105. package/build/dex/smardex/sdk/errors.js.map +1 -0
  106. package/build/dex/smardex/sdk/types.d.ts +62 -0
  107. package/build/dex/smardex/sdk/types.js +3 -0
  108. package/build/dex/smardex/sdk/types.js.map +1 -0
  109. package/build/dex/smardex/sdk/utils.d.ts +44 -0
  110. package/build/dex/smardex/sdk/utils.js +133 -0
  111. package/build/dex/smardex/sdk/utils.js.map +1 -0
  112. package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
  113. package/build/dex/smardex/smardex-event-pool.js +119 -0
  114. package/build/dex/smardex/smardex-event-pool.js.map +1 -0
  115. package/build/dex/smardex/smardex.d.ts +65 -0
  116. package/build/dex/smardex/smardex.js +519 -0
  117. package/build/dex/smardex/smardex.js.map +1 -0
  118. package/build/dex/smardex/types.d.ts +55 -0
  119. package/build/dex/smardex/types.js +3 -0
  120. package/build/dex/smardex/types.js.map +1 -0
  121. package/build/dex/smoothy.d.ts +26 -0
  122. package/build/dex/smoothy.js +48 -0
  123. package/build/dex/smoothy.js.map +1 -0
  124. package/build/dex/solidly/forks-override/cone.d.ts +22 -0
  125. package/build/dex/solidly/forks-override/cone.js +53 -0
  126. package/build/dex/solidly/forks-override/cone.js.map +1 -0
  127. package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
  128. package/build/dex/solidly/forks-override/solisnek.js +15 -0
  129. package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
  130. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  131. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  132. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  133. package/build/dex/stable-pool.d.ts +28 -0
  134. package/build/dex/stable-pool.js +55 -0
  135. package/build/dex/stable-pool.js.map +1 -0
  136. package/build/dex/swaap-v1/config.d.ts +17 -0
  137. package/build/dex/swaap-v1/config.js +56 -0
  138. package/build/dex/swaap-v1/config.js.map +1 -0
  139. package/build/dex/swaap-v1/constants.d.ts +6 -0
  140. package/build/dex/swaap-v1/constants.js +17 -0
  141. package/build/dex/swaap-v1/constants.js.map +1 -0
  142. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
  143. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
  144. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
  145. package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
  146. package/build/dex/swaap-v1/libraries/Const.js +26 -0
  147. package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
  148. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
  149. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
  150. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
  151. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
  152. package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
  153. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
  154. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
  155. package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
  156. package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
  157. package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
  158. package/build/dex/swaap-v1/libraries/Num.js +167 -0
  159. package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
  160. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
  161. package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
  162. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
  163. package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
  164. package/build/dex/swaap-v1/libraries/Struct.js +3 -0
  165. package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
  166. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
  167. package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
  168. package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
  169. package/build/dex/swaap-v1/swaap-v1.d.ts +62 -0
  170. package/build/dex/swaap-v1/swaap-v1.js +383 -0
  171. package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
  172. package/build/dex/swaap-v1/types.d.ts +106 -0
  173. package/build/dex/swaap-v1/types.js +9 -0
  174. package/build/dex/swaap-v1/types.js.map +1 -0
  175. package/build/dex/trader-joe-v2.1.d.ts +43 -0
  176. package/build/dex/trader-joe-v2.1.js +79 -0
  177. package/build/dex/trader-joe-v2.1.js.map +1 -0
  178. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  179. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  180. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  181. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  182. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  183. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  184. package/build/generic-swap-transaction-builder.js +1 -3
  185. package/build/generic-swap-transaction-builder.js.map +1 -1
  186. package/build/router/simpleswap.js +1 -3
  187. package/build/router/simpleswap.js.map +1 -1
  188. package/package.json +1 -1
  189. package/src/dex/index.ts +1 -18
  190. package/src/generic-swap-transaction-builder.ts +1 -3
  191. package/src/router/simpleswap.ts +1 -3
  192. package/.idea/aws.xml +0 -17
  193. package/.idea/codeStyles/Project.xml +0 -19
  194. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  195. package/.idea/misc.xml +0 -6
  196. package/.idea/modules.xml +0 -8
  197. package/.idea/paraswap-dex-lib.iml +0 -9
  198. package/.idea/prettier.xml +0 -7
  199. package/.idea/vcs.xml +0 -6
  200. package/src/abi/BProtocol.json +0 -1155
  201. package/src/abi/Jarvis.json +0 -1172
  202. package/src/abi/MStableAsset.json +0 -1545
  203. package/src/abi/OneInchLp.json +0 -1304
  204. package/src/abi/Onebit.json +0 -736
  205. package/src/abi/Shell.json +0 -1294
  206. package/src/abi/TraderJoeV2Router.json +0 -50
  207. package/src/abi/zrx.v2.json +0 -1967
  208. package/src/abi/zrx.v3.json +0 -3454
  209. package/src/abi/zrx.v4.json +0 -2193
  210. package/src/dex/OneInchLp.ts +0 -84
  211. package/src/dex/bProtocol/bProtocol-e2e.test.ts +0 -93
  212. package/src/dex/bProtocol/bProtocol.ts +0 -108
  213. package/src/dex/bProtocol/types.ts +0 -13
  214. package/src/dex/jarvis.ts +0 -262
  215. package/src/dex/mStable.ts +0 -147
  216. package/src/dex/onebit/onebit.ts +0 -113
  217. package/src/dex/onebit/types.ts +0 -17
  218. package/src/dex/shell.ts +0 -84
  219. package/src/dex/trader-joe-v2.ts +0 -148
  220. package/src/dex/zerox/config.ts +0 -31
  221. package/src/dex/zerox/index.ts +0 -328
  222. package/src/dex/zerox/order.ts +0 -62
  223. package/src/dex/zerox/types.ts +0 -82
  224. package/src/dex/zerox/zerox-e2e.test.ts +0 -110
@@ -1,113 +0,0 @@
1
- import { Interface, JsonFragment } from '@ethersproject/abi';
2
- import { Provider } from '@ethersproject/providers';
3
- import { SwapSide } from '../../constants';
4
- import {
5
- AdapterExchangeParam,
6
- Address,
7
- DexExchangeParam,
8
- NumberAsString,
9
- SimpleExchangeParam,
10
- } from '../../types';
11
- import { IDexTxBuilder } from '../idex';
12
- import { SimpleExchange } from '../simple-exchange';
13
- import OnebitABI from '../../abi/Onebit.json';
14
- import { IDexHelper } from '../../dex-helper';
15
- import { OnebitData, OnebitFunctions, OnebitParam } from './types';
16
- import { extractReturnAmountPosition } from '../../executor/utils';
17
-
18
- export class Onebit
19
- extends SimpleExchange
20
- implements IDexTxBuilder<OnebitData, OnebitParam>
21
- {
22
- static dexKeys = ['omm1'];
23
- exchangeRouterInterface: Interface;
24
- needWrapNative = true;
25
-
26
- constructor(dexHelper: IDexHelper) {
27
- super(dexHelper, 'omm1');
28
- this.exchangeRouterInterface = new Interface(OnebitABI as JsonFragment[]);
29
- }
30
-
31
- getAdapterParam(
32
- srcToken: string,
33
- destToken: string,
34
- srcAmount: string,
35
- destAmount: string,
36
- data: OnebitData,
37
- side: SwapSide,
38
- ): AdapterExchangeParam {
39
- return {
40
- targetExchange: data.router,
41
- payload: '0x',
42
- networkFee: '0',
43
- };
44
- }
45
-
46
- async getSimpleParam(
47
- srcToken: string,
48
- destToken: string,
49
- srcAmount: string,
50
- destAmount: string,
51
- data: OnebitData,
52
- side: SwapSide,
53
- ): Promise<SimpleExchangeParam> {
54
- const swapFunction = OnebitFunctions.swapTokensWithTrust;
55
- const swapFunctionParams: OnebitParam = [
56
- srcToken,
57
- destToken,
58
- srcAmount,
59
- destAmount,
60
- this.augustusAddress,
61
- ];
62
- const swapData = this.exchangeRouterInterface.encodeFunctionData(
63
- swapFunction,
64
- swapFunctionParams,
65
- );
66
-
67
- return this.buildSimpleParamWithoutWETHConversion(
68
- srcToken,
69
- srcAmount,
70
- destToken,
71
- destAmount,
72
- swapData,
73
- data.router,
74
- );
75
- }
76
-
77
- getDexParam(
78
- srcToken: Address,
79
- destToken: Address,
80
- srcAmount: NumberAsString,
81
- destAmount: NumberAsString,
82
- recipient: Address,
83
- data: OnebitData,
84
- _side: SwapSide,
85
- ): DexExchangeParam {
86
- const swapFunction = OnebitFunctions.swapTokensWithTrust;
87
- const swapFunctionParams: OnebitParam = [
88
- srcToken,
89
- destToken,
90
- srcAmount,
91
- destAmount,
92
- recipient,
93
- ];
94
- const swapData = this.exchangeRouterInterface.encodeFunctionData(
95
- swapFunction,
96
- swapFunctionParams,
97
- );
98
-
99
- return {
100
- needWrapNative: this.needWrapNative,
101
- dexFuncHasRecipient: true,
102
- exchangeData: swapData,
103
- targetExchange: data.router,
104
- returnAmountPos:
105
- _side === SwapSide.SELL
106
- ? extractReturnAmountPosition(
107
- this.exchangeRouterInterface,
108
- swapFunction,
109
- )
110
- : undefined,
111
- };
112
- }
113
- }
@@ -1,17 +0,0 @@
1
- import { Address } from '@paraswap/core';
2
-
3
- export type OnebitData = {
4
- router: Address;
5
- };
6
-
7
- export type OnebitParam = [
8
- srcToken: string,
9
- destToken: string,
10
- srcAmount: string,
11
- destAmountMin: string,
12
- to: string,
13
- ];
14
-
15
- export enum OnebitFunctions {
16
- swapTokensWithTrust = 'swapTokensWithTrust',
17
- }
package/src/dex/shell.ts DELETED
@@ -1,84 +0,0 @@
1
- import { Interface, JsonFragment } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import {
6
- getLocalDeadlineAsFriendlyPlaceholder,
7
- SimpleExchange,
8
- } from './simple-exchange';
9
- import ShellABI from '../abi/Shell.json';
10
- import { IDexHelper } from '../dex-helper';
11
-
12
- export type ShellData = {
13
- exchange: Address;
14
- deadline?: number;
15
- };
16
- type ShellParam = [
17
- _origin: string,
18
- _target: string,
19
- _originAmount: string,
20
- _minTargetAmount: string,
21
- _deadline: string,
22
- ];
23
- enum ShellFunctions {
24
- originSwap = 'originSwap',
25
- }
26
-
27
- export class Shell
28
- extends SimpleExchange
29
- implements IDexTxBuilder<ShellData, ShellParam>
30
- {
31
- static dexKeys = ['shell'];
32
- exchangeRouterInterface: Interface;
33
-
34
- constructor(dexHelper: IDexHelper) {
35
- super(dexHelper, 'shell');
36
- this.exchangeRouterInterface = new Interface(ShellABI as JsonFragment[]);
37
- }
38
-
39
- getAdapterParam(
40
- srcToken: string,
41
- destToken: string,
42
- srcAmount: string,
43
- destAmount: string,
44
- data: ShellData,
45
- side: SwapSide,
46
- ): AdapterExchangeParam {
47
- return {
48
- targetExchange: data.exchange,
49
- payload: '0x',
50
- networkFee: '0',
51
- };
52
- }
53
-
54
- async getSimpleParam(
55
- srcToken: string,
56
- destToken: string,
57
- srcAmount: string,
58
- destAmount: string,
59
- data: ShellData,
60
- side: SwapSide,
61
- ): Promise<SimpleExchangeParam> {
62
- const swapFunction = ShellFunctions.originSwap;
63
- const swapFunctionParams: ShellParam = [
64
- srcToken,
65
- destToken,
66
- srcAmount,
67
- destAmount,
68
- getLocalDeadlineAsFriendlyPlaceholder(),
69
- ];
70
- const swapData = this.exchangeRouterInterface.encodeFunctionData(
71
- swapFunction,
72
- swapFunctionParams,
73
- );
74
-
75
- return this.buildSimpleParamWithoutWETHConversion(
76
- srcToken,
77
- srcAmount,
78
- destToken,
79
- destAmount,
80
- swapData,
81
- data.exchange,
82
- );
83
- }
84
- }
@@ -1,148 +0,0 @@
1
- import { Network, SwapSide } from '../constants';
2
- import { AdapterExchangeParam, Address, SimpleExchangeParam } from '../types';
3
- import { IDexTxBuilder } from './idex';
4
- import { IDexHelper } from '../dex-helper';
5
- import {
6
- getLocalDeadlineAsFriendlyPlaceholder,
7
- SimpleExchange,
8
- } from './simple-exchange';
9
- import { NumberAsString } from '@paraswap/core';
10
- import { AsyncOrSync } from 'ts-essentials';
11
- import { Interface, JsonFragment } from '@ethersproject/abi';
12
- import TraderJoeV2RouterABI from '../abi/TraderJoeV2Router.json';
13
-
14
- const TRADERJOE_V2_ROUTER_ADDRESS: { [network: number]: Address } = {
15
- [Network.AVALANCHE]: '0xE3Ffc583dC176575eEA7FD9dF2A7c65F7E23f4C3',
16
- [Network.ARBITRUM]: '0x7BFd7192E76D950832c77BB412aaE841049D8D9B',
17
- [Network.BSC]: '0xb66A2704a0dabC1660941628BE987B4418f7a9E8',
18
- };
19
-
20
- type TraderJoeV2RouterSellParams = [
21
- _amountIn: NumberAsString,
22
- _amountOutMin: NumberAsString,
23
- _pairBinSteps: NumberAsString[],
24
- _tokenPath: Address[],
25
- to: Address,
26
- _deadline: number,
27
- ];
28
-
29
- type TraderJoeV2RouterBuyParams = [
30
- _amountOut: NumberAsString,
31
- _amountInMax: NumberAsString,
32
- _pairBinSteps: NumberAsString[],
33
- _tokenPath: Address[],
34
- to: Address,
35
- _deadline: string,
36
- ];
37
-
38
- type TraderJoeV2RouterParam =
39
- | TraderJoeV2RouterSellParams
40
- | TraderJoeV2RouterBuyParams;
41
-
42
- export type TraderJoeV2Data = {
43
- tokenIn: string; // redundant
44
- tokenOut: string; // redundant
45
- binStep: string;
46
- };
47
-
48
- enum TraderJoeV2RouterFunctions {
49
- swapExactTokensForTokens = 'swapExactTokensForTokens',
50
- swapTokensForExactTokens = 'swapTokensForExactTokens',
51
- }
52
-
53
- export class TraderJoeV2
54
- extends SimpleExchange
55
- implements IDexTxBuilder<TraderJoeV2Data, TraderJoeV2RouterParam>
56
- {
57
- static dexKeys = ['traderjoev2'];
58
- protected routerAddress: string;
59
- exchangeRouterInterface: Interface;
60
- needWrapNative = true;
61
-
62
- constructor(dexHelper: IDexHelper) {
63
- super(dexHelper, 'traderjoev2');
64
-
65
- this.routerAddress =
66
- TRADERJOE_V2_ROUTER_ADDRESS[dexHelper.config.data.network];
67
-
68
- this.exchangeRouterInterface = new Interface(
69
- TraderJoeV2RouterABI as JsonFragment[],
70
- );
71
- }
72
-
73
- getAdapterParam(
74
- srcToken: Address,
75
- destToken: Address,
76
- srcAmount: NumberAsString,
77
- destAmount: NumberAsString,
78
- data: TraderJoeV2Data,
79
- side: SwapSide,
80
- ): AdapterExchangeParam {
81
- const payload = this.abiCoder.encodeParameter(
82
- {
83
- ParentStruct: {
84
- _pairBinSteps: 'uint256[]',
85
- _tokenPath: 'address[]',
86
- _deadline: 'uint256',
87
- },
88
- },
89
- {
90
- _pairBinSteps: [data.binStep],
91
- _tokenPath: [data.tokenIn, data.tokenOut], // FIXME: redundant, shoot & read from contract
92
- _deadline: getLocalDeadlineAsFriendlyPlaceholder(), // FIXME: more gas efficient to pass block.timestamp in adapter
93
- },
94
- );
95
-
96
- return {
97
- targetExchange: this.routerAddress,
98
- payload,
99
- networkFee: '0',
100
- };
101
- }
102
-
103
- getSimpleParam(
104
- srcToken: Address,
105
- destToken: Address,
106
- srcAmount: NumberAsString,
107
- destAmount: NumberAsString,
108
- data: TraderJoeV2Data,
109
- side: SwapSide,
110
- ): AsyncOrSync<SimpleExchangeParam> {
111
- const swapFunction =
112
- side === SwapSide.SELL
113
- ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
114
- : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
115
-
116
- const swapFunctionParams: TraderJoeV2RouterParam =
117
- side === SwapSide.SELL
118
- ? [
119
- srcAmount,
120
- destAmount,
121
- [data.binStep],
122
- [srcToken, destToken],
123
- this.augustusAddress,
124
- getLocalDeadlineAsFriendlyPlaceholder(),
125
- ]
126
- : [
127
- destAmount,
128
- srcAmount,
129
- [data.binStep],
130
- [srcToken, destToken],
131
- this.augustusAddress,
132
- getLocalDeadlineAsFriendlyPlaceholder(),
133
- ];
134
- const swapData = this.exchangeRouterInterface.encodeFunctionData(
135
- swapFunction,
136
- swapFunctionParams,
137
- );
138
-
139
- return this.buildSimpleParamWithoutWETHConversion(
140
- srcToken,
141
- srcAmount,
142
- destToken,
143
- destAmount,
144
- swapData,
145
- this.routerAddress,
146
- );
147
- }
148
- }
@@ -1,31 +0,0 @@
1
- import { Network } from '../../constants';
2
-
3
- export const ZRX_EXCHANGE: Record<number, Record<number, string>> = {
4
- [Network.MAINNET]: {
5
- 2: '0x080bf510fcbf18b91105470639e9561022937712',
6
- 3: '0x61935CbDd02287B511119DDb11Aeb42F1593b7Ef',
7
- 4: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
8
- },
9
- [Network.BSC]: {
10
- 2: '0x3F93C3D9304a70c9104642AB8cD37b1E2a7c203A',
11
- 4: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
12
- },
13
- [Network.POLYGON]: {
14
- 4: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
15
- },
16
- };
17
-
18
- export const ZRX_EXCHANGE_ERC20PROXY: Record<number, Record<number, string>> = {
19
- [Network.MAINNET]: {
20
- 1: '0x95E6F48254609A6ee006F7D493c8e5fB97094ceF',
21
- 2: '0x95E6F48254609A6ee006F7D493c8e5fB97094ceF',
22
- 4: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
23
- },
24
- [Network.BSC]: {
25
- 2: '0xCF21d4b7a265FF779accBA55Ace0F56C8cE6e379',
26
- 4: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
27
- },
28
- [Network.POLYGON]: {
29
- 4: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
30
- },
31
- };