测试SushiSwap里的MasterChef合约

    SushiSwap是一个去中心化的交易所,其代码是由Uniswap V2分叉而来,支持质押挖矿、闪电贷等功能,其中MasterChef合约,用于质押挖矿。下面,介绍MasterChef合约的测试方法。

1、拉取Sushiswap工程

git clone https://github.com/sushiswap/sushiswap.git

2、修改hardhat.config.js文件

    将hardhat.config.js复制一份,源文件重命名为hardhat.config00.js,然后,将hardhat.config.js内容修改如下:
    //hardhat.config.js

/**
 * @type import('hardhat/config').HardhatUserConfig
 */
 require("@nomiclabs/hardhat-waffle");

 //选取ganache下的4个账户的私钥
//  const PRIVATE_KEY1 = "9066...4c7f";
//  const PRIVATE_KEY2 = "0c933...8b9c";
//  const PRIVATE_KEY3 = "28ba...2c9d";
//  const PRIVATE_KEY4 = "da9f...1808";
 
 module.exports = {
   solidity: "0.6.12",
   networks: {
 
    //  ganache: {
    //    url: `http://127.0.0.1:9545`,
    //    accounts: [`0x${PRIVATE_KEY1}`,`0x${PRIVATE_KEY2}`,`0x${PRIVATE_KEY3}`,`0x${PRIVATE_KEY4}`]
    //  },
     // ropsten: {
     //   url: `https://eth-ropsten.alchemyapi.io/v2/${ALCHEMY_API_KEY}`,
     //   accounts: [`0x${ROPSTEN_PRIVATE_KEY}`]
     // },
     // rinkeby: {
     //   url: `https://eth-rinkeby.alchemyapi.io/v2/${ALCHEMY_API_KEY}`,
     //   accounts: [`0x${rinkeby_PRIVATE_KEY}`]
     // },
   }
 };
 

3、安装依赖包

3.1 修改yarn.lock

    修改yarn.lock的第3669行,改成如下,如图(1)所示:

dependencies:
    ethereumjs-abi "0.6.8"
图(1) 在yarn.lock的dependencies字段,指定ethereumjs-abi的版本号

3.2 yarn安装依赖包

sudo yarn install

4、测试MasterChef合约

4.1 启动hardhat本地测试网节点

    启动hardhat的测试网节点,命令如下:

npx hardhat node

    它默认有20个账户,每个账户有10000ETH,如图(2)所示:

图(2) 启动hardhat本地的测试节点

4.2 编译工程

npx hardhat compile

4.3 测试合约

    a) 测试MasterChef合约

npx hardhat test test/MasterChef.test.ts

    效果如下:

图(3) 使用npx测试MasterChef合约

    如图(3)所示,8个案例,全部测试通过。

    b) 测试全部合约

npx hardhat test --verbose

猜你喜欢

转载自blog.csdn.net/sanqima/article/details/120721209