@@ -14,7 +14,6 @@ import { IUniswapSwapRouter02 } from "test/utils/IUniswapSwapRouter02.sol";
14
14
import { MockStrategy } from "test/mocks/MockStrategy.sol " ;
15
15
import { GenericSwap } from "contracts/GenericSwap.sol " ;
16
16
import { AllowanceTarget } from "contracts/AllowanceTarget.sol " ;
17
- import { TokenCollector } from "contracts/abstracts/TokenCollector.sol " ;
18
17
import { SmartOrderStrategy } from "contracts/SmartOrderStrategy.sol " ;
19
18
import { Constant } from "contracts/libraries/Constant.sol " ;
20
19
import { GenericSwapData, getGSDataHash } from "contracts/libraries/GenericSwapData.sol " ;
@@ -50,6 +49,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
50
49
uint24 [] defaultV3Fees = [3000 ];
51
50
bytes defaultTakerPermit;
52
51
bytes alicePermit;
52
+ bytes swapData;
53
53
SmartOrderStrategy smartStrategy;
54
54
GenericSwap genericSwap;
55
55
GenericSwapData defaultGSData;
@@ -104,7 +104,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
104
104
value: 0 ,
105
105
data: routerPayload
106
106
});
107
- bytes memory swapData = abi.encode (operations);
107
+ swapData = abi.encode (operations);
108
108
109
109
deal (taker, 100 ether);
110
110
setTokenBalanceAndApprove (taker, UNISWAP_PERMIT2_ADDRESS, tokens, 100000 );
@@ -122,8 +122,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
122
122
minMakerTokenAmount: minOutputAmount,
123
123
expiry: defaultExpiry,
124
124
salt: 5678 ,
125
- recipient: payable (taker),
126
- strategyData: swapData
125
+ recipient: payable (taker)
127
126
});
128
127
129
128
defaultTakerPermit = getTokenlonPermit2Data (taker, takerPrivateKey, defaultGSData.takerToken, address (genericSwap));
@@ -154,7 +153,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
154
153
);
155
154
156
155
vm.prank (taker);
157
- genericSwap.executeSwap (defaultGSData, defaultTakerPermit);
156
+ genericSwap.executeSwap (defaultGSData, swapData, defaultTakerPermit);
158
157
159
158
takerTakerToken.assertChange (- int256 (defaultGSData.takerTokenAmount));
160
159
// the makerTokenAmount in the defaultGSData is the exact quote from strategy
@@ -190,7 +189,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
190
189
gsData.salt
191
190
);
192
191
vm.prank (taker);
193
- genericSwap.executeSwap (gsData, defaultTakerPermit);
192
+ genericSwap.executeSwap (gsData, swapData, defaultTakerPermit);
194
193
195
194
takerTakerToken.assertChange (- int256 (gsData.takerTokenAmount));
196
195
takerMakerToken.assertChange (int256 (realChangedInGS));
@@ -225,7 +224,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
225
224
gsData.salt
226
225
);
227
226
vm.prank (taker);
228
- genericSwap.executeSwap { value: gsData.takerTokenAmount }(gsData, defaultTakerPermit);
227
+ genericSwap.executeSwap { value: gsData.takerTokenAmount }(gsData, swapData, defaultTakerPermit);
229
228
230
229
takerTakerToken.assertChange (- int256 (gsData.takerTokenAmount));
231
230
takerMakerToken.assertChange (int256 (realChangedInGS));
@@ -261,7 +260,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
261
260
gsData.salt
262
261
);
263
262
vm.prank (taker);
264
- genericSwap.executeSwap (gsData, defaultTakerPermit);
263
+ genericSwap.executeSwap (gsData, swapData, defaultTakerPermit);
265
264
266
265
takerTakerToken.assertChange (- int256 (gsData.takerTokenAmount));
267
266
takerMakerToken.assertChange (int256 (realChangedInGS));
@@ -274,13 +273,13 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
274
273
275
274
vm.prank (taker);
276
275
vm.expectRevert (IGenericSwap.ExpiredOrder.selector );
277
- genericSwap.executeSwap (defaultGSData, defaultTakerPermit);
276
+ genericSwap.executeSwap (defaultGSData, swapData, defaultTakerPermit);
278
277
}
279
278
280
279
function testCannotSwapWithInvalidETHInput () public {
281
280
// case1 : msg.value != 0 when takerToken is not ETH
282
281
vm.expectRevert (IGenericSwap.InvalidMsgValue.selector );
283
- genericSwap.executeSwap { value: 1 }(defaultGSData, defaultTakerPermit);
282
+ genericSwap.executeSwap { value: 1 }(defaultGSData, swapData, defaultTakerPermit);
284
283
285
284
// change input token as ETH and update amount
286
285
GenericSwapData memory gsData = defaultGSData;
@@ -290,12 +289,12 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
290
289
// case2 : msg.value > takerTokenAmount
291
290
vm.prank (taker);
292
291
vm.expectRevert (IGenericSwap.InvalidMsgValue.selector );
293
- genericSwap.executeSwap { value: gsData.takerTokenAmount + 1 }(gsData, defaultTakerPermit);
292
+ genericSwap.executeSwap { value: gsData.takerTokenAmount + 1 }(gsData, swapData, defaultTakerPermit);
294
293
295
294
// case3 : msg.value < takerTokenAmount
296
295
vm.prank (taker);
297
296
vm.expectRevert (IGenericSwap.InvalidMsgValue.selector );
298
- genericSwap.executeSwap { value: gsData.takerTokenAmount - 1 }(gsData, defaultTakerPermit);
297
+ genericSwap.executeSwap { value: gsData.takerTokenAmount - 1 }(gsData, swapData, defaultTakerPermit);
299
298
}
300
299
301
300
function testCannotSwapWithInsufficientOutput () public {
@@ -306,7 +305,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
306
305
mockStrategy.setOutputAmountAndRecipient (gsData.minMakerTokenAmount - 1 , payable (address (genericSwap)));
307
306
vm.prank (taker);
308
307
vm.expectRevert (IGenericSwap.InsufficientOutput.selector );
309
- genericSwap.executeSwap (gsData, defaultTakerPermit);
308
+ genericSwap.executeSwap (gsData, swapData, defaultTakerPermit);
310
309
}
311
310
312
311
function testCannotSwapWithZeroRecipient () public {
@@ -315,7 +314,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
315
314
316
315
vm.prank (taker);
317
316
vm.expectRevert (IGenericSwap.ZeroAddress.selector );
318
- genericSwap.executeSwap (gsData, defaultTakerPermit);
317
+ genericSwap.executeSwap (gsData, swapData, defaultTakerPermit);
319
318
}
320
319
321
320
function testGenericSwapRelayed () public {
@@ -336,7 +335,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
336
335
);
337
336
338
337
bytes memory takerSig = signGenericSwap (takerPrivateKey, defaultGSData, address (genericSwap));
339
- genericSwap.executeSwapWithSig (defaultGSData, defaultTakerPermit, taker, takerSig);
338
+ genericSwap.executeSwapWithSig (defaultGSData, swapData, defaultTakerPermit, taker, takerSig);
340
339
341
340
takerTakerToken.assertChange (- int256 (defaultGSData.takerTokenAmount));
342
341
// the makerTokenAmount in the defaultGSData is the exact quote from strategy
@@ -349,15 +348,15 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
349
348
350
349
vm.expectRevert (IGenericSwap.InvalidSignature.selector );
351
350
// submit with user address as expected signer
352
- genericSwap.executeSwapWithSig (defaultGSData, defaultTakerPermit, taker, randomSig);
351
+ genericSwap.executeSwapWithSig (defaultGSData, swapData, defaultTakerPermit, taker, randomSig);
353
352
}
354
353
355
354
function testCannotReplayGenericSwapSig () public {
356
355
bytes memory takerSig = signGenericSwap (takerPrivateKey, defaultGSData, address (genericSwap));
357
- genericSwap.executeSwapWithSig (defaultGSData, defaultTakerPermit, taker, takerSig);
356
+ genericSwap.executeSwapWithSig (defaultGSData, swapData, defaultTakerPermit, taker, takerSig);
358
357
359
358
vm.expectRevert (IGenericSwap.AlreadyFilled.selector );
360
- genericSwap.executeSwapWithSig (defaultGSData, defaultTakerPermit, taker, takerSig);
359
+ genericSwap.executeSwapWithSig (defaultGSData, swapData, defaultTakerPermit, taker, takerSig);
361
360
}
362
361
363
362
function testLeaveOneWeiWithMultipleUsers () public {
@@ -385,7 +384,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
385
384
);
386
385
387
386
vm.prank (taker);
388
- genericSwap.executeSwap (defaultGSData, defaultTakerPermit);
387
+ genericSwap.executeSwap (defaultGSData, swapData, defaultTakerPermit);
389
388
390
389
// the second user: Alice
391
390
// his makerTokenAmount is recalculate by `quoteExactInput() function base on the current state`
@@ -418,7 +417,7 @@ contract GenericSwapTest is Test, Tokens, BalanceUtil, Permit2Helper, SigHelper
418
417
);
419
418
420
419
vm.startPrank (alice);
421
- genericSwap.executeSwap (aliceGSData, alicePermit);
420
+ genericSwap.executeSwap (aliceGSData, swapData, alicePermit);
422
421
vm.stopPrank ();
423
422
424
423
takerTakerToken.assertChange (- int256 (defaultGSData.takerTokenAmount));
0 commit comments