@paraswap/dex-lib 3.8.18 → 3.8.20-lite-psm

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 (171) hide show
  1. package/build/abi/inception/inception-ineth-pool.json +1062 -0
  2. package/build/abi/inception/inception-ineth.json +609 -0
  3. package/build/abi/inception/inception-ratio-feed.json +93 -0
  4. package/build/abi/inception/inception-vault.json +991 -0
  5. package/build/abi/infusion/InfusionFactory.json +147 -0
  6. package/build/abi/infusion/InfusionPair.json +658 -0
  7. package/build/abi/infusion/InfusionRouter.json +442 -0
  8. package/build/abi/lite-psm/psm.json +468 -0
  9. package/build/abi/oswap/oswap.abi.json +452 -0
  10. package/build/dex/aave-v1/aave-v1.js +0 -1
  11. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  12. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  13. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  14. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  15. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  16. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  17. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  18. package/build/dex/idle-dao/scripts.d.ts +9 -0
  19. package/build/dex/idle-dao/scripts.js +552 -0
  20. package/build/dex/idle-dao/scripts.js.map +1 -0
  21. package/build/dex/inception/config.d.ts +5 -0
  22. package/build/dex/inception/config.js +112 -0
  23. package/build/dex/inception/config.js.map +1 -0
  24. package/build/dex/inception/inception-event-pool.d.ts +23 -0
  25. package/build/dex/inception/inception-event-pool.js +34 -0
  26. package/build/dex/inception/inception-event-pool.js.map +1 -0
  27. package/build/dex/inception/inception-native.d.ts +43 -0
  28. package/build/dex/inception/inception-native.js +131 -0
  29. package/build/dex/inception/inception-native.js.map +1 -0
  30. package/build/dex/inception/inception-pool.d.ts +18 -0
  31. package/build/dex/inception/inception-pool.js +32 -0
  32. package/build/dex/inception/inception-pool.js.map +1 -0
  33. package/build/dex/inception/inception-price-feed.d.ts +19 -0
  34. package/build/dex/inception/inception-price-feed.js +51 -0
  35. package/build/dex/inception/inception-price-feed.js.map +1 -0
  36. package/build/dex/inception/inception.d.ts +44 -0
  37. package/build/dex/inception/inception.js +162 -0
  38. package/build/dex/inception/inception.js.map +1 -0
  39. package/build/dex/inception/tokens.d.ts +9 -0
  40. package/build/dex/inception/tokens.js +28 -0
  41. package/build/dex/inception/tokens.js.map +1 -0
  42. package/build/dex/inception/types.d.ts +22 -0
  43. package/build/dex/inception/types.js +3 -0
  44. package/build/dex/inception/types.js.map +1 -0
  45. package/build/dex/inception/utils.d.ts +7 -0
  46. package/build/dex/inception/utils.js +58 -0
  47. package/build/dex/inception/utils.js.map +1 -0
  48. package/build/dex/index.js +4 -0
  49. package/build/dex/index.js.map +1 -1
  50. package/build/dex/infusion/config.d.ts +4 -0
  51. package/build/dex/infusion/config.js +25 -0
  52. package/build/dex/infusion/config.js.map +1 -0
  53. package/build/dex/infusion/infusion-stable-pool.d.ts +4 -0
  54. package/build/dex/infusion/infusion-stable-pool.js +74 -0
  55. package/build/dex/infusion/infusion-stable-pool.js.map +1 -0
  56. package/build/dex/infusion/infusion.d.ts +54 -0
  57. package/build/dex/infusion/infusion.js +510 -0
  58. package/build/dex/infusion/infusion.js.map +1 -0
  59. package/build/dex/infusion/types.d.ts +47 -0
  60. package/build/dex/infusion/types.js +3 -0
  61. package/build/dex/infusion/types.js.map +1 -0
  62. package/build/dex/infusion/utils/isStablePair.d.ts +2 -0
  63. package/build/dex/infusion/utils/isStablePair.js +18 -0
  64. package/build/dex/infusion/utils/isStablePair.js.map +1 -0
  65. package/build/dex/lite-psm/config.d.ts +3 -0
  66. package/build/dex/lite-psm/config.js +29 -0
  67. package/build/dex/lite-psm/config.js.map +1 -0
  68. package/build/dex/lite-psm/lite-psm-event-pool.d.ts +29 -0
  69. package/build/dex/lite-psm/lite-psm-event-pool.js +158 -0
  70. package/build/dex/lite-psm/lite-psm-event-pool.js.map +1 -0
  71. package/build/dex/lite-psm/lite-psm.d.ts +53 -0
  72. package/build/dex/lite-psm/lite-psm.js +365 -0
  73. package/build/dex/lite-psm/lite-psm.js.map +1 -0
  74. package/build/dex/lite-psm/types.d.ts +40 -0
  75. package/build/dex/lite-psm/types.js +3 -0
  76. package/build/dex/lite-psm/types.js.map +1 -0
  77. package/build/dex/maker-psm/maker-psm.js +3 -2
  78. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  79. package/build/dex/oswap/config.d.ts +5 -0
  80. package/build/dex/oswap/config.js +31 -0
  81. package/build/dex/oswap/config.js.map +1 -0
  82. package/build/dex/oswap/oswap-pool.d.ts +51 -0
  83. package/build/dex/oswap/oswap-pool.js +150 -0
  84. package/build/dex/oswap/oswap-pool.js.map +1 -0
  85. package/build/dex/oswap/oswap.d.ts +46 -0
  86. package/build/dex/oswap/oswap.js +273 -0
  87. package/build/dex/oswap/oswap.js.map +1 -0
  88. package/build/dex/oswap/types.d.ts +20 -0
  89. package/build/dex/oswap/types.js +3 -0
  90. package/build/dex/oswap/types.js.map +1 -0
  91. package/build/dex/platypus/platypus.js +3 -17
  92. package/build/dex/platypus/platypus.js.map +1 -1
  93. package/build/dex/swaap-v1/swaap-v1.js +0 -4
  94. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  95. package/build/dex/trader-joe-v2.1/config.d.ts +3 -0
  96. package/build/dex/trader-joe-v2.1/config.js +5 -1
  97. package/build/dex/trader-joe-v2.1/config.js.map +1 -1
  98. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.d.ts +2 -14
  99. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +3 -85
  100. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -1
  101. package/package.json +1 -1
  102. package/src/abi/lite-psm/psm.json +468 -0
  103. package/src/dex/index.ts +4 -0
  104. package/src/dex/lite-psm/config.ts +29 -0
  105. package/src/dex/lite-psm/lite-psm-e2e.test.ts +79 -0
  106. package/src/dex/lite-psm/lite-psm-event-pool.ts +213 -0
  107. package/src/dex/lite-psm/lite-psm-events.test.ts +61 -0
  108. package/src/dex/lite-psm/lite-psm-integration.test.ts +96 -0
  109. package/src/dex/lite-psm/lite-psm.ts +578 -0
  110. package/src/dex/lite-psm/types.ts +46 -0
  111. package/src/dex/maker-psm/maker-psm.ts +3 -2
  112. package/src/dex/trader-joe-v2.1/base.ts +178 -0
  113. package/src/dex/trader-joe-v2.1/config.ts +5 -0
  114. package/src/dex/trader-joe-v2.1/trader-joe-v2.1.ts +8 -165
  115. package/src/dex/trader-joe-v2.1/trader-joe-v2.2.ts +23 -0
  116. package/.vscode/launch.json +0 -53
  117. package/.vscode/settings.json +0 -2
  118. package/.vscode/tasks.json +0 -15
  119. package/build/abi/maverick-v2/MaverickV2Router.json +0 -778
  120. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
  121. package/build/abi/wombat/pool.json +0 -1289
  122. package/build/dex/aave-v2/tokens-avalanche.json +0 -44
  123. package/build/dex/aave-v2/tokens-mainnet.json +0 -188
  124. package/build/dex/aave-v2/tokens-polygon.json +0 -44
  125. package/build/dex/bProtocol.d.ts +0 -18
  126. package/build/dex/bProtocol.js +0 -39
  127. package/build/dex/bProtocol.js.map +0 -1
  128. package/build/dex/bancor.d.ts +0 -26
  129. package/build/dex/bancor.js +0 -58
  130. package/build/dex/bancor.js.map +0 -1
  131. package/build/dex/compound.d.ts +0 -18
  132. package/build/dex/compound.js +0 -46
  133. package/build/dex/compound.js.map +0 -1
  134. package/build/dex/curve-v2.d.ts +0 -58
  135. package/build/dex/curve-v2.js +0 -180
  136. package/build/dex/curve-v2.js.map +0 -1
  137. package/build/dex/dodo-v1.d.ts +0 -33
  138. package/build/dex/dodo-v1.js +0 -63
  139. package/build/dex/dodo-v1.js.map +0 -1
  140. package/build/dex/lido.d.ts +0 -19
  141. package/build/dex/lido.js +0 -42
  142. package/build/dex/lido.js.map +0 -1
  143. package/build/dex/maker-psm/scripts/gem.abi.json +0 -136
  144. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  145. package/build/dex/maker-psm/scripts/validate-state.js +0 -185
  146. package/build/dex/maker-psm/scripts/validate-state.js.map +0 -1
  147. package/build/dex/maker-psm/scripts/vat.abi.json +0 -243
  148. package/build/dex/onebit.d.ts +0 -25
  149. package/build/dex/onebit.js +0 -42
  150. package/build/dex/onebit.js.map +0 -1
  151. package/build/dex/smoothy.d.ts +0 -26
  152. package/build/dex/smoothy.js +0 -48
  153. package/build/dex/smoothy.js.map +0 -1
  154. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +0 -1
  155. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +0 -53
  156. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +0 -1
  157. package/build/dex/stable-pool.d.ts +0 -28
  158. package/build/dex/stable-pool.js +0 -55
  159. package/build/dex/stable-pool.js.map +0 -1
  160. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +0 -7
  161. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +0 -20
  162. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +0 -1
  163. package/build/dex/trader-joe-v2.1.d.ts +0 -43
  164. package/build/dex/trader-joe-v2.1.js +0 -79
  165. package/build/dex/trader-joe-v2.1.js.map +0 -1
  166. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +0 -17
  167. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +0 -64
  168. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +0 -1
  169. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +0 -17
  170. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +0 -79
  171. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +0 -1
@@ -0,0 +1,178 @@
1
+ import { SwapSide } from '../../constants';
2
+ import {
3
+ AdapterExchangeParam,
4
+ Address,
5
+ DexExchangeParam,
6
+ SimpleExchangeParam,
7
+ } from '../../types';
8
+ import { IDexTxBuilder } from '../idex';
9
+ import { IDexHelper } from '../../dex-helper';
10
+ import {
11
+ getLocalDeadlineAsFriendlyPlaceholder,
12
+ SimpleExchange,
13
+ } from '../simple-exchange';
14
+ import { NumberAsString } from '@paraswap/core';
15
+ import { AsyncOrSync } from 'ts-essentials';
16
+ import { Interface, JsonFragment } from '@ethersproject/abi';
17
+ import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
18
+ import {
19
+ TraderJoeV2Data,
20
+ TraderJoeV2RouterFunctions,
21
+ TraderJoeV2RouterParam,
22
+ } from './types';
23
+ import { extractReturnAmountPosition } from '../../executor/utils';
24
+
25
+ export class BaseTraderJoeV2
26
+ extends SimpleExchange
27
+ implements IDexTxBuilder<TraderJoeV2Data, TraderJoeV2RouterParam>
28
+ {
29
+ exchangeRouterInterface: Interface;
30
+
31
+ constructor(
32
+ dexHelper: IDexHelper,
33
+ dexKey: string,
34
+ protected routerAddress: string,
35
+ protected versionIndex: string,
36
+ ) {
37
+ super(dexHelper, dexKey);
38
+
39
+ this.exchangeRouterInterface = new Interface(
40
+ TraderJoeV21RouterABI as JsonFragment[],
41
+ );
42
+ }
43
+
44
+ getAdapterParam(
45
+ srcToken: Address,
46
+ destToken: Address,
47
+ srcAmount: NumberAsString,
48
+ destAmount: NumberAsString,
49
+ data: TraderJoeV2Data,
50
+ side: SwapSide,
51
+ ): AdapterExchangeParam {
52
+ let payload = this.abiCoder.encodeParameters(
53
+ ['tuple(tuple(uint256[],uint8[],address[]),uint256)'],
54
+ [
55
+ [
56
+ [
57
+ [
58
+ data.binStep, // _pairBinSteps: uint256[]
59
+ ],
60
+ [
61
+ this.versionIndex, // _versions: uint8[]
62
+ ],
63
+ [
64
+ data.tokenIn,
65
+ data.tokenOut, // _tokenPath: address[]
66
+ ],
67
+ ],
68
+ getLocalDeadlineAsFriendlyPlaceholder(), // _deadline: uint256
69
+ ],
70
+ ],
71
+ );
72
+
73
+ return {
74
+ targetExchange: this.routerAddress,
75
+ payload,
76
+ networkFee: '0',
77
+ };
78
+ }
79
+
80
+ getSimpleParam(
81
+ srcToken: Address,
82
+ destToken: Address,
83
+ srcAmount: NumberAsString,
84
+ destAmount: NumberAsString,
85
+ data: TraderJoeV2Data,
86
+ side: SwapSide,
87
+ ): AsyncOrSync<SimpleExchangeParam> {
88
+ const swapFunction =
89
+ side === SwapSide.SELL
90
+ ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
91
+ : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
92
+
93
+ const swapFunctionParams: TraderJoeV2RouterParam =
94
+ side === SwapSide.SELL
95
+ ? [
96
+ srcAmount,
97
+ destAmount,
98
+ [[data.binStep], [this.versionIndex], [srcToken, destToken]],
99
+ this.augustusAddress,
100
+ getLocalDeadlineAsFriendlyPlaceholder(),
101
+ ]
102
+ : [
103
+ destAmount,
104
+ srcAmount,
105
+ [[data.binStep], [this.versionIndex], [srcToken, destToken]],
106
+ this.augustusAddress,
107
+ getLocalDeadlineAsFriendlyPlaceholder(),
108
+ ];
109
+
110
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(
111
+ swapFunction,
112
+ swapFunctionParams,
113
+ );
114
+
115
+ return this.buildSimpleParamWithoutWETHConversion(
116
+ srcToken,
117
+ srcAmount,
118
+ destToken,
119
+ destAmount,
120
+ swapData,
121
+ this.routerAddress,
122
+ );
123
+ }
124
+
125
+ getDexParam(
126
+ srcToken: Address,
127
+ destToken: Address,
128
+ srcAmount: NumberAsString,
129
+ destAmount: NumberAsString,
130
+ recipient: Address,
131
+ data: TraderJoeV2Data,
132
+ side: SwapSide,
133
+ ): DexExchangeParam {
134
+ const swapFunction =
135
+ side === SwapSide.SELL
136
+ ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
137
+ : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
138
+
139
+ const placeholder = getLocalDeadlineAsFriendlyPlaceholder();
140
+
141
+ const swapFunctionParams: TraderJoeV2RouterParam =
142
+ side === SwapSide.SELL
143
+ ? [
144
+ srcAmount,
145
+ destAmount,
146
+ [[data.binStep], [this.versionIndex], [srcToken, destToken]],
147
+ recipient,
148
+ placeholder,
149
+ ]
150
+ : [
151
+ destAmount,
152
+ srcAmount,
153
+ [[data.binStep], [this.versionIndex], [srcToken, destToken]],
154
+ recipient,
155
+ placeholder,
156
+ ];
157
+
158
+ const swapData = this.exchangeRouterInterface.encodeFunctionData(
159
+ swapFunction,
160
+ swapFunctionParams,
161
+ );
162
+
163
+ return {
164
+ needWrapNative: this.needWrapNative,
165
+ dexFuncHasRecipient: true,
166
+ exchangeData: swapData,
167
+ targetExchange: this.routerAddress,
168
+ returnAmountPos:
169
+ side === SwapSide.SELL
170
+ ? extractReturnAmountPosition(
171
+ this.exchangeRouterInterface,
172
+ swapFunction,
173
+ 'amountOut',
174
+ )
175
+ : undefined,
176
+ };
177
+ }
178
+ }
@@ -7,3 +7,8 @@ export const TRADERJOE_V2_1_ROUTER_ADDRESS: { [network: number]: Address } = {
7
7
  [Network.BSC]: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',
8
8
  [Network.MAINNET]: '0x9A93a421b74F1c5755b83dD2C211614dC419C44b',
9
9
  };
10
+
11
+ export const TRADERJOE_V2_2_ROUTER_ADDRESS: { [network: number]: Address } = {
12
+ [Network.AVALANCHE]: '0x18556da13313f3532c54711497a8fedac273220e',
13
+ [Network.ARBITRUM]: '0x18556da13313f3532c54711497a8fedac273220e',
14
+ };
@@ -1,180 +1,23 @@
1
- import { SwapSide } from '../../constants';
2
- import {
3
- AdapterExchangeParam,
4
- Address,
5
- DexExchangeParam,
6
- SimpleExchangeParam,
7
- } from '../../types';
8
- import { IDexTxBuilder } from '../idex';
9
1
  import { IDexHelper } from '../../dex-helper';
10
- import {
11
- getLocalDeadlineAsFriendlyPlaceholder,
12
- SimpleExchange,
13
- } from '../simple-exchange';
14
- import { NumberAsString } from '@paraswap/core';
15
- import { AsyncOrSync } from 'ts-essentials';
16
2
  import { Interface, JsonFragment } from '@ethersproject/abi';
17
3
  import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
18
- import {
19
- TraderJoeV2Data,
20
- TraderJoeV2RouterFunctions,
21
- TraderJoeV2RouterParam,
22
- } from './types';
23
4
  import { TRADERJOE_V2_1_ROUTER_ADDRESS } from './config';
24
- import { extractReturnAmountPosition } from '../../executor/utils';
5
+ import { BaseTraderJoeV2 } from './base';
25
6
 
26
- export class TraderJoeV21
27
- extends SimpleExchange
28
- implements IDexTxBuilder<TraderJoeV2Data, TraderJoeV2RouterParam>
29
- {
7
+ export class TraderJoeV21 extends BaseTraderJoeV2 {
30
8
  static dexKeys = ['traderjoev2.1'];
31
- protected routerAddress: string;
32
- exchangeRouterInterface: Interface;
33
9
  needWrapNative = true;
34
10
 
35
11
  constructor(dexHelper: IDexHelper) {
36
- super(dexHelper, 'traderjoev2.1');
37
-
38
- this.routerAddress =
39
- TRADERJOE_V2_1_ROUTER_ADDRESS[dexHelper.config.data.network];
12
+ super(
13
+ dexHelper,
14
+ 'traderjoev2.1',
15
+ TRADERJOE_V2_1_ROUTER_ADDRESS[dexHelper.config.data.network],
16
+ '2',
17
+ );
40
18
 
41
19
  this.exchangeRouterInterface = new Interface(
42
20
  TraderJoeV21RouterABI as JsonFragment[],
43
21
  );
44
22
  }
45
-
46
- getAdapterParam(
47
- srcToken: Address,
48
- destToken: Address,
49
- srcAmount: NumberAsString,
50
- destAmount: NumberAsString,
51
- data: TraderJoeV2Data,
52
- side: SwapSide,
53
- ): AdapterExchangeParam {
54
- let payload = this.abiCoder.encodeParameters(
55
- ['tuple(tuple(uint256[],uint8[],address[]),uint256)'],
56
- [
57
- [
58
- [
59
- [
60
- data.binStep, // _pairBinSteps: uint256[]
61
- ],
62
- [
63
- 2, // _versions: uint8[]
64
- ],
65
- [
66
- data.tokenIn,
67
- data.tokenOut, // _tokenPath: address[]
68
- ],
69
- ],
70
- getLocalDeadlineAsFriendlyPlaceholder(), // _deadline: uint256
71
- ],
72
- ],
73
- );
74
-
75
- return {
76
- targetExchange: this.routerAddress,
77
- payload,
78
- networkFee: '0',
79
- };
80
- }
81
-
82
- getSimpleParam(
83
- srcToken: Address,
84
- destToken: Address,
85
- srcAmount: NumberAsString,
86
- destAmount: NumberAsString,
87
- data: TraderJoeV2Data,
88
- side: SwapSide,
89
- ): AsyncOrSync<SimpleExchangeParam> {
90
- const swapFunction =
91
- side === SwapSide.SELL
92
- ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
93
- : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
94
-
95
- const swapFunctionParams: TraderJoeV2RouterParam =
96
- side === SwapSide.SELL
97
- ? [
98
- srcAmount,
99
- destAmount,
100
- [[data.binStep], ['2'], [srcToken, destToken]],
101
- this.augustusAddress,
102
- getLocalDeadlineAsFriendlyPlaceholder(),
103
- ]
104
- : [
105
- destAmount,
106
- srcAmount,
107
- [[data.binStep], ['2'], [srcToken, destToken]],
108
- this.augustusAddress,
109
- getLocalDeadlineAsFriendlyPlaceholder(),
110
- ];
111
-
112
- const swapData = this.exchangeRouterInterface.encodeFunctionData(
113
- swapFunction,
114
- swapFunctionParams,
115
- );
116
-
117
- return this.buildSimpleParamWithoutWETHConversion(
118
- srcToken,
119
- srcAmount,
120
- destToken,
121
- destAmount,
122
- swapData,
123
- this.routerAddress,
124
- );
125
- }
126
-
127
- getDexParam(
128
- srcToken: Address,
129
- destToken: Address,
130
- srcAmount: NumberAsString,
131
- destAmount: NumberAsString,
132
- recipient: Address,
133
- data: TraderJoeV2Data,
134
- side: SwapSide,
135
- ): DexExchangeParam {
136
- const swapFunction =
137
- side === SwapSide.SELL
138
- ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
139
- : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
140
-
141
- const placeholder = getLocalDeadlineAsFriendlyPlaceholder();
142
-
143
- const swapFunctionParams: TraderJoeV2RouterParam =
144
- side === SwapSide.SELL
145
- ? [
146
- srcAmount,
147
- destAmount,
148
- [[data.binStep], ['2'], [srcToken, destToken]],
149
- recipient,
150
- placeholder,
151
- ]
152
- : [
153
- destAmount,
154
- srcAmount,
155
- [[data.binStep], ['2'], [srcToken, destToken]],
156
- recipient,
157
- placeholder,
158
- ];
159
-
160
- const swapData = this.exchangeRouterInterface.encodeFunctionData(
161
- swapFunction,
162
- swapFunctionParams,
163
- );
164
-
165
- return {
166
- needWrapNative: this.needWrapNative,
167
- dexFuncHasRecipient: true,
168
- exchangeData: swapData,
169
- targetExchange: this.routerAddress,
170
- returnAmountPos:
171
- side === SwapSide.SELL
172
- ? extractReturnAmountPosition(
173
- this.exchangeRouterInterface,
174
- swapFunction,
175
- 'amountOut',
176
- )
177
- : undefined,
178
- };
179
- }
180
23
  }
@@ -0,0 +1,23 @@
1
+ import { IDexHelper } from '../../dex-helper';
2
+ import { Interface, JsonFragment } from '@ethersproject/abi';
3
+ import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
4
+ import { TRADERJOE_V2_2_ROUTER_ADDRESS } from './config';
5
+ import { BaseTraderJoeV2 } from './base';
6
+
7
+ export class TraderJoeV22 extends BaseTraderJoeV2 {
8
+ static dexKeys = ['traderjoev2.2'];
9
+ needWrapNative = true;
10
+
11
+ constructor(dexHelper: IDexHelper) {
12
+ super(
13
+ dexHelper,
14
+ 'traderjoev2.2',
15
+ TRADERJOE_V2_2_ROUTER_ADDRESS[dexHelper.config.data.network],
16
+ '3',
17
+ );
18
+
19
+ this.exchangeRouterInterface = new Interface(
20
+ TraderJoeV21RouterABI as JsonFragment[],
21
+ );
22
+ }
23
+ }
@@ -1,53 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "type": "node",
6
- "request": "launch",
7
- "name": "Current",
8
- "program": "${file}",
9
- "preLaunchTask": "npm: build",
10
- "sourceMaps": true,
11
- "smartStep": true,
12
- "internalConsoleOptions": "openOnSessionStart",
13
- "outFiles": ["${workspaceFolder}/build/**/*.js"]
14
- },
15
- {
16
- "type": "node",
17
- "request": "launch",
18
- "name": "Debug dex integration",
19
- "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js",
20
- "args": [
21
- "--project",
22
- "tsconfig.json",
23
- // "${workspaceFolder}/src/dex/algebra/scripts/validate-state.ts",
24
- "${workspaceFolder}/src/dex/camelot/camelot-pool-discovery.test.ts",
25
- // "${workspaceFolder}/src/dex/solidly-v3/scripts/check-event-pool-event.ts",
26
- // "${workspaceFolder}/scripts/dex-integration.ts",
27
- "test",
28
- "wombat"
29
- ],
30
- "console": "integratedTerminal",
31
- "internalConsoleOptions": "neverOpen",
32
- "runtimeArgs": ["--nolazy"],
33
- "sourceMaps": true,
34
- "smartStep": true,
35
- "skipFiles": ["<node_internals>/**"],
36
- "cwd": "${workspaceFolder}"
37
- },
38
- {
39
- "type": "node",
40
- "name": "Jest file",
41
- "request": "launch",
42
- "program": "${workspaceFolder}/node_modules/jest/bin/jest.js",
43
- // "program": "${workspaceFolder}/src/dex/camelot/scripts/validate-state.ts",
44
- // "args": ["src/dex/balancer-v1/balancer-v1-e2e.test.ts"],
45
- // "args": ["${relativeFile}"],
46
- "args": ["${file}"],
47
- "cwd": "${workspaceRoot}",
48
- "console": "integratedTerminal",
49
- "internalConsoleOptions": "neverOpen",
50
- "sourceMaps": true
51
- }
52
- ]
53
- }
@@ -1,2 +0,0 @@
1
- {
2
- }
@@ -1,15 +0,0 @@
1
- {
2
- "version": "2.0.0",
3
- "tasks": [
4
- {
5
- "label": "tsc: build - tsconfig.json",
6
- "type": "typescript",
7
- "tsconfig": "tsconfig.json",
8
- "problemMatcher": ["$tsc"],
9
- "group": {
10
- "kind": "build",
11
- "isDefault": true
12
- }
13
- }
14
- ]
15
- }