检查ApeSwap工程

Posted sanqima

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查ApeSwap工程相关的知识,希望对你有一定的参考价值。

    ApeSwap一个去中心化的交易所,既有类似Uniswap的TokenA/TokenB兑换,又有类似SushiSwap的质押挖矿。其工厂合约、路由合约、配对合约参考了Uniswap V2,BananaToken、MasterApe合约参考SushiSwap的SushiToken和MasterChef。具体如下:

    在ApeSwap的配对合约中,手续费仍然是0.3%,但协议抽成比例改成了1/4,即从这0.3%中再抽取1/4给开发团队,剩余的给LP提供者。下面介绍ApeSwap的检查流程。

1 下载ApeSwap工程

    地址:https://github.com/ApeSwapFinance/apeswap-banana-farm

2 修改配置和安装依赖包

    将下载的apeswap-banana-farm-master.zip解压,然后将工程文件夹名称改为apeswap-banana-farm。

2.1 修改yarn.lock

    由于dependencies字段下的ethereumjs-abi需要手动指定版本号,故在yarn.lock的第3729行,改成如下:

  dependencies:
    ethereumjs-abi "0.6.8"

2.2 安装依赖包

cd apeswap-banana-farm
sudo yarn install

3 编译合约

    a) 在ganache设置IP为127.0.0.1,端口为8545,重启ganache
    b)打开一个黑框框终端,依次输入如下命令:

## 进入工程
cd apeswap-banana-farm

## 打开truffle控制台
truffle console

## 编译智能合约
compile

## 退出truffle
## 按Ctrl+C、Ctrl+D 退出truffle

4 用Slither检查合约

4.1 用相对路径代替@

    由于Slither不支持@方式的代码导入,所以需要用相对路径来代替@,比如

## 修改前
import "@pancakeswap/pancake-swap-lib/contracts/token/BEP20/BEP20.sol";

## 修改后 
import "../node_modules/@pancakeswap/pancake-swap-lib/contracts/token/BEP20/BEP20.sol";

    即在apeswap-banana-farm/contracts的每个合约文件里,用 …/node_modules/@pancakeswap 替换 @pancakeswap

4.2 启动Docker

    在桌面的任务栏找到Docker,双击启动它,然后,打开Slither实例,命令如下:

## 在Slither实例
docker run -it -v /Users/apple/Downloads/ShenJi/20211012/apeswap-banana-farm:/contract trailofbits/eth-security-toolbox

## 进入/contract目录
cd /contract

4.3 检查合约

    a) 检查BananaToken合约

slither ./contracts/BananaToken.sol --solc /usr/bin/solc-v0.6.12

    b) 检查BEP20RewardApe合约

slither ./contracts/BEP20RewardApe.sol --solc /usr/bin/solc-v0.6.12

    c) 检查BEP20RewardApeV2合约

slither ./contracts/BEP20RewardApeV2.sol --solc /usr/bin/solc-v0.6.12

    d) 检查BNBRewardApe合约

slither ./contracts/BNBRewardApe.sol --solc /usr/bin/solc-v0.6.12

    e) 检查BnbStaking合约

slither ./contracts/BnbStaking.sol --solc /usr/bin/solc-v0.6.12

    f) 查LotteryRewardPool合约

slither ./contracts/LotteryRewardPool.sol --solc /usr/bin/solc-v0.6.12

    g) 检查MasterApe合约

slither ./contracts/MasterApe.sol --solc /usr/bin/solc-v0.6.12

    注意,Slither的误报率比较高,约为40%,这些有歧义的报错,需要进行人工走读代码,进行审计。

以上是关于检查ApeSwap工程的主要内容,如果未能解决你的问题,请参考以下文章

分享前端开发常用代码片段

收藏|分享前端开发常用代码片段

web代码片段

关于js----------------分享前端开发常用代码片段

JavaScript单行代码,也就是代码片段

EasyClick 运行代码片段出Null