已经有相关的文章教程可以将部署到以太坊[2]类链上了, 例如:
pancake-swap-interface-v1
如何将PancakeSwap部署到以太坊类链上[3]
但是,对于如何配置还没有一个详细完整的教程。在此,笔者将pancake前端工程pancake-frontend[4]配置成本地的hardhat[5]测试网环境,方便大家一起学习。
pancake-frontend
项目的完整地址在:https://github.com/chobynleo/pancake-swap-frontend-hardhat-testnet
Example
以下是相应的配置教程:(转载请注明出处)
一个基于pancake-frontend和hardhat的以太坊测试环境
工程文件的拉取与环境的配置
1.下载pancake-swap-core
源码git clone git@github.com:pancakeswap/pancake-swap-core.git
yarn install
yarn compile
2.下载pancake-swap-periphery
源码git clone git@github.com:pancakeswap/pancake-swap-periphery.git
yarn install
yarn compile
3.下载pancake-swap-interface-v1
前端源码git clone git@github.com:pancakeswap/pancake-swap-interface-v1.git
yarn install
tip:安装过程出现import @uniswap/v2-core/contracts/interfaces/IPancakePair.sol
编译报错问题 参考登链社区[6]的回答
安装与部署
合约地址的源码可以到https://bscscan.com/address/your_address#code
下载
pancake-swap-core
目录下
安装
hardhat
并编写部署文件PancakeFactory.sol
;npm install --save-dev
hardhat npx hardhat选择
Create an empty hardhat.config.js
,并进行基本的solidity
版本设置、ALCHEMY_API_KEY
设置等;创建
scripts/deploy.js
并编写相应的部署脚本,注意要将你的账户地址赋值给feeToSetter
变量,传入合约的构造函数中,接着部署;npx hardhat run scripts/deploy.js --network dev
保存
INIT_CODE_PAIR_HASH
;
pancake-swap-periphery
目录下
安装
hardhat
并编写部署文件PancakeRouter.sol
;npm install --save-dev hardhat
npx hardhat选择
Create an empty hardhat.config.js
,并进行基本的solidity
版本设置、ALCHEMY_API_KEY
设置等;找到
PancakeLibrary.sol
里的pairFor
函数, 将其INIT_CODE_PAIR_HASH
的hex
更改为我们的INIT_CODE_PAIR_HASH
;创建
scripts/deploy.js
并编写相应的部署脚本,将PancakeFactory
的address和WETH
的address作为两个参数传入合约的构造函数中;npx hardhat run scripts/deploy.js --network dev
遇到
error:max code size exceeded
,解决的方法是将solidity->optimizer->runs
值设置为200;
pancake-frontend
目录下
以下将列出所有需要更改的文件:
ethers.providers.StaticJsonRpcProvider(RPC_URL)
的设置在src/utils/providers.ts
,参数在env.development
中的REACT_APP_NODE_PRODUCTION
;- 网络
url
配置的路径在PANCAKE-FRONTEND/src/config/constants/networks.ts
; testnet
网络中默认的token
配置也要更改,在src/config/constants/tokens.ts
;tokenlist
路径在src/config/constants/tokenlists/pancake-default.tokenlist.json
,但为了便于本地访问,在初始部署时我拷贝了到public/
里面,后续有需要更改的是public/
里面的值;PANCAKE_EXTENDED
、PANCAKE_TOP100
路径在src/config/constants/lists.ts
,FACTORY_ADDRESS
和INIT_CODE_HASH
的配置在node_modules/@pancakeswap/sdk/dist/constants.d.ts
,- 钱包连接网络的配置在
src/utils/wallet.ts
ROUTER_ADDRESS
的配置在src/config/constants/index.ts
;masterChef
、lotteryV2
、multiCall
等合约的地址配置在src/config/constants/contracts.ts
ABI
和address
的配置分别在config/abi/
,utils/addressHelpers
,其引用在src/utils/contractHelpers.ts
,src/hooks/useContract.ts
priceHelperLps
的配置在src/config/constants/priceHelperLps.ts
;src/state/farms/hooks.ts
里面的useFarmFromPid(251)
需要更改成正确的参数值src/config/index.ts
里面的BASE_BSC_SCAN_URLS,BASE_URL,BASE_BSC_SCAN_URL
需要更改成正确的参数值farm
和pools
,ifo
,pricehelper
,contracts
的里面的合约地址和网络chainId
需要更改,分别在src/config/constants/farm.ts
src/config/constants/pools.ts
src/config/constants/ifo.ts
src/config/constants/pricehelper.ts
src/config/constants/contract.ts
猜你喜欢
比特币价格今日行情,比特币暴跌7%其它加密货币也跳水
比特币价格今日行情,比特币暴跌7%其它加密货币也跳水 比特币价格大幅下跌,而以太币价格也下跌。
2022-01-22
09年上大学买了5000个比特币,不惜卖掉婚房的唐宇,现今咋样了
09年上大学买了5000个比特币,不惜卖掉婚房的唐宇,现今咋样了 2013年,那个为买118个比特币,不惜卖掉婚房的唐宇,现今咋样了
2022-01-22
中国全面禁止比特币挖矿的原因
中国全面禁止比特币挖矿的原因 近期因为国内碳排放问题和国内电力不够用的情况,先是把比特币挖矿关停,进而把虚拟货币的整个交易市场也几乎关停了。很多区块链的企业开始转向了海外,或者直接清算结束运行了。
2022-01-22
交易所出海后,比特币中国禁止后怎么提现
交易所出海后,比特币中国禁止后怎么提现 为什么要清退虚拟货币呢?
2022-01-22
李晨比特币5个亿爆仓怎么翻身
李晨比特币5个亿爆仓怎么翻身 李晨有多少比特币 李晨比特币爆仓 李晨炒比特币 比特币大涨李晨 李晨的比特币 Q1:李晨比特币5个亿爆仓怎么翻身
2022-01-22
上一篇
用 Arweave 构建 Web3 应用下一篇
2022十大智能合约开发工具