Files
contract/test/TestMirror.sol
dexorder 25def69c66 dexorder
2024-10-17 02:42:28 -04:00

57 lines
1.6 KiB
Solidity

pragma solidity 0.8.26;
import "@forge-std/Test.sol";
import "@forge-std/console2.sol";
import {UniswapV3Arbitrum} from "../src/core/UniswapV3.sol";
import "./MirrorEnv.sol";
contract TestMirror is Test {
MirrorEnv public mirror;
MirrorEnv.TokenInfo public tokenInfo0;
MirrorEnv.TokenInfo public tokenInfo1;
function setUp() public virtual {
mirror = new MirrorEnv(UniswapV3Arbitrum.nfpm, UniswapV3Arbitrum.swapRouter);
tokenInfo0 = MirrorEnv.TokenInfo(IERC20Metadata(address(0x1234)), 'Test', 'TST', 18);
tokenInfo1 = MirrorEnv.TokenInfo(IERC20Metadata(address(0x12345)), 'Testy', 'TSTY', 8);
}
}
contract TestMirrorToken is TestMirror {
function testMirrorToken() public {
mirror.mirrorToken(tokenInfo0);
}
}
contract TestMirrorPool is TestMirror {
MockERC20 public mock0;
MockERC20 public mock1;
function setUp() public override {
TestMirror.setUp();
mock0 = mirror.mirrorToken(tokenInfo0);
mock1 = mirror.mirrorToken(tokenInfo1);
console2.log('MirrorPool setUp');
}
function testMirrorPool() public {
MirrorEnv.PoolInfo memory poolInfo = MirrorEnv.PoolInfo(
IUniswapV3Pool(address(0x4321)), // IUniswapV3Pool pool;
tokenInfo0.addr, // IERC20Metadata token0;
tokenInfo1.addr, // IERC20Metadata token1;
3000, // uint24 fee;
2**96, // uint160 sqrtPriceX96;
1_000_000 * 10 ** tokenInfo0.decimals, // uint256 amount0;
1_000_000 * 10 ** tokenInfo1.decimals // uint256 amount1;
);
mirror.mirrorPool(poolInfo);
}
}