将UniswapV2部署到所有区块链--去中心化交易所Uniswap多链部署
准备工作
工厂合约
在主合约添加
bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode));
编译EVM版本选择istanbul
,优化次数999999。
构造参数为管理员地址。

路由合约
全局搜索hex,根据工厂合约查询到的INIT_CODE_PAIR_HASH
的值,替换到路由合约中。
构造参数为工厂合约地址和WETH地址。
WETH合约
Multicall合约
前端工作
uniswap-sdk
建议使用2020.8.6版本的
git clone https://github.com/Uniswap/v2-sdk.git
修改工厂合约地址和Init Code
修改WETH地址
新增链ID
修改package.json打包上传npm
npm login
npm publish
uniswap前端
建议使用2020.9.1版本的
git clone https://github.com/Uniswap/uniswap-interface.git
移除uniswap依赖包
npm remove @uniswap/sdk
新增sdk依赖
npm i ll-bsc-sdk
名称参考上图修改路由合约,增加链名称
支持的链ID
新增multicall地址
修改tokenlist
格式如下:
{
"name": "Default",
"logoURI": "https://raw.githubusercontent.com/compound-finance/token-list/master/assets/compound-interface.svg",
"keywords": [
"compound",
"defi"
],
"timestamp": "2021-05-27T20:37:00.000+00:00",
"tokens": [
{
"chainId": 97,
"address": "0x27D55145b209781ccc88D90e1C218f3685fef2c8",
"name": "dd",
"symbol": "dd",
"decimals": 18,
"logoURI": "https://raw.githubusercontent.com/compound-finance/token-list/master/assets/asset_ZRX.svg"
}
],
"version": {
"major": 2,
"minor": 0,
"patch": 0
}
}
启动前端
yarn start
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 此刻的永恒!