选择Foundry本地测试网

image.png

添加获取INIT_CODE的代码

UniswapV2Factory.sol 合约中添加以下代码用来获取INIT_CODE ,然后切换编译器版本为0.5.16 ,编译合约后直接部署即可。

1
bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode));

image.png

获取INIT_CODE

部署好UniswapV2Factory合约后,调用获取INIT_CODE 的值。

image.png

替换INIT_CODE

找到v2-periphery 下的UniswapV2Library.sol 文件,搜索hex ,修改pairFor 函数中对应的哈希值。

image.png

部署WETH以及router合约

image.png

在Foundry测试文件中如何调用合约?

使用 vm.createSelectFork("http://127.0.0.1:8545"); 连接到本地测试网,即可直接用刚刚部署好的合约地址调用合约。