如何自己一个bsc测试链的swap

前段时间自己按照github上的swap,自己修改了一个类似于pancake的中心化交易所,中间遇到不少的坑,按着原文档 ,这里我按自己的方式 ,分享一下给大家 。
1、首先在这里下载源代码。pancake-swap-core,pancake-swap-interface-v1,pancake-swap-periphery,只下载这三部分就可以了。
2.cd pancake-swap-core
yarn install
yarn compile
在yarn install的时候,会经常出错过不去,有两种方式处理。一种是科学上网,另一种是换成国内的源。如果yarn install 不行,改用npm i 去尝试。
3.cd pancake-swap-periphery
yarn install
如果yarn install 不行,同样以上面方式尝试
yarn add @uniswap/v2-core@“file:…/pancake-swap-core”
4.cd pancake-swap-interface-v1
yarn install
如果yarn install 不行,同样以上面方式尝试
5.发布合约
sol-merger pancake-swap-core/contracts/PancakeFactory.sol ./build
sol-merger pancake-swap-core/contracts/PancakePair.sol ./build
sol-merger pancake-swap-periphery/contracts/PancakeRouter01.sol ./build
sol-merger pancake-swap-periphery/contracts/PancakeRouter.sol ./build
首先发布一下WBNB.sol合约,并记录下合约的发布地址 。
再发布PancakeFactory.sol合约 ,并记录下合约的发布地址 。
然后再下面有个函数,把INIT_CODE_PAIR_HASH的值记录下来。
打开PancakeRouter01.sol,并找到pairfor 函数 ,把上面的INIT_CODE_PAIR_HASH值替换掉。注意。hash值前面的0x去掉。
然后把PancakeFactory和WBNB任为参数 ,发部合约 。
PancakeRouter.sol的发部过程和PancakeRouter01.sol类似。
如果有不明白的地方,可以加V交流 54516204。
完成以上步骤之后。
cd pancake-swap-interface-v1
cp .env.development .env
修改下面文件 ,上面我就不做详细的修改了,直接按github上的复制了
Update PancakeRouter address to ROUTER_ADDRESS at src/constants/index.ts

Update support chain to testnet at src/connectors/index.ts

Change from supportedChainIds: [56, 97] to supportedChainIds: [97]
Change from 56 to 97
Update PancakeFactory address and code hash to FACTORY_ADDRESS and INIT_CODE_HASH at node_modules/@pancakeswap-libs/sdk/dist/constants.d.ts, node_modules/@pancakeswap-libs/sdk/dist/sdk.cjs.development.js, node_modules/@pancakeswap-libs/sdk/dist/sdk.cjs.production.min.js and node_modules/@pancakeswap-libs/sdk/dist/sdk.esm.js

Update PancakeFactory address to v2 factory; PancakeRouter01 address to v2 router 01 and PancakeRouter address to v2 router 02 at src/state/swap/hooks.ts

Update WBNB address at node_modules/@pancakeswap-libs/sdk/dist/sdk.cjs.development.js, node_modules/@pancakeswap-libs/sdk/dist/sdk.cjs.production.min.js, node_modules/@pancakeswap-libs/sdk/dist/sdk.esm.js
Deploy your own tokens

Deploy your own tokens and update info (token address + chainId to 97) to src/constants/token/pancakeswap.json
Remember update token icon with name as token address in lowercase mode to public/images/coins
Update support network from ChainId.MAINNET to ChainId.BSCTESTNET at src/constants/index.ts
Update coin addresses to your at src/constants/index.ts
Update src/components/Menu/index.tsx: From priceData.data[CAKE.address].price to priceData.data[CAKE.address]?.price ?? 0
Update src/hooks/useGetDocumentTitlePrice.ts: From priceData.data[CAKE.address].price to priceData.data[CAKE.address]?.price ?? 0
Custom menu at src/components/Menu/config.ts

yarn start,就可以运行了,其中有比较多的细节问题,有兴趣可以交流。

猜你喜欢

转载自blog.csdn.net/weixin_38532278/article/details/124940636