@@ -236,80 +236,3 @@ contract OrdersTest is Test {
236236 target.fill {value: amount}(outputs);
237237 }
238238}
239-
240- contract OrdersFuzzTest is Test {
241- RollupOrders public target;
242- mapping (address => bool ) isToken;
243-
244- uint256 deadline = block .timestamp + 100 ;
245-
246- event Filled (Output[] outputs );
247-
248- event Order (uint256 deadline , Input[] inputs , Output[] outputs );
249-
250- event Sweep (address indexed recipient , address indexed token , uint256 amount );
251-
252- function setUp () public {
253- target = new RollupOrders ();
254-
255- // deploy ERC20 tokens
256- for (uint256 i; i < 15 ; i++ ) {
257- address token = address (new TestERC20 ("hi " , "HI " ));
258- isToken[token] = true ;
259- }
260- }
261-
262- function testFuzz_initiate (Input[] memory fuzzInputs , Output[] memory fuzzOutputs ) public {
263- // can only use vm.assume 256 * 256 times, and we do 256 fuzz runs
264- vm.assume (fuzzInputs.length < 250 );
265- // setup the fuzz test by ensuring ETH and ERC20 amounts are available
266- uint256 totalETH;
267- for (uint256 i; i < fuzzInputs.length ; i++ ) {
268- if (fuzzInputs[i].token == address (0 )) {
269- // tally up total ETH amount in the inputs
270- totalETH += fuzzInputs[i].amount;
271- continue ;
272- }
273-
274- _setupToken (fuzzInputs[i].token, fuzzInputs[i].amount, address (target));
275- }
276- // deal the total ETH amount to ensure the address has it
277- vm.deal (address (this ), address (this ).balance + totalETH);
278-
279- vm.expectEmit ();
280- emit Order (deadline, fuzzInputs, fuzzOutputs);
281- target.initiate {value: totalETH}(deadline, fuzzInputs, fuzzOutputs);
282- }
283-
284- function testFuzz_fill (Output[] memory fuzzOutputs ) public {
285- // can only use vm.assume 256 * 256 times, and we do 256 fuzz runs
286- vm.assume (fuzzOutputs.length < 250 );
287- // setup the fuzz test by ensuring ETH and ERC20 amounts are available
288- uint256 totalETH;
289- for (uint256 i; i < fuzzOutputs.length ; i++ ) {
290- if (fuzzOutputs[i].token == address (0 )) {
291- totalETH += fuzzOutputs[i].amount;
292- continue ;
293- }
294-
295- _setupToken (fuzzOutputs[i].token, fuzzOutputs[i].amount, fuzzOutputs[i].recipient);
296- }
297- // deal the total ETH amount to ensure the address has it
298- vm.deal (address (this ), address (this ).balance + totalETH);
299-
300- vm.expectEmit ();
301- emit Filled (fuzzOutputs);
302- target.fill {value: totalETH}(fuzzOutputs);
303- }
304-
305- function _setupToken (address token , uint256 amount , address recipient ) internal {
306- // ERC20 inputs must be one of the tokens we've deployed
307- vm.assume (isToken[token]);
308- // mint the token amount to ensure the address has it
309- TestERC20 (token).mint (address (this ), amount);
310- // approve the target to spend the total token amount
311- TestERC20 (token).approve (address (target), type (uint256 ).max);
312- // expect the token amount to be transferred
313- vm.expectCall (token, abi.encodeWithSelector (ERC20 .transferFrom.selector , address (this ), recipient, amount));
314- }
315- }
0 commit comments