Tests and Audits

As an experienced full-stack software development company, we understand the importance of security. To ensure that the contracts are doing what it’s supposed to do without bugs, errors, or vulnerabilities, we have done our own audits at the launch phase by scenario testing it with automated test scenarios to simulate actions and events at certain blocks or times.

All test codes can be found on our GitHub repository. Users can fork the repo and run tests against the written contract to verify the results.

Our tests are included in the coverage report (percentage of code which is covered by automated tests).

Code Coverage Report

Contracts

Code Coverage

FeedToken (FEED Token Contract)

99.23 %

FeedFarm (FEED Farming Contract)

100%

FeedTimelock (FEED Timelock Contract)

100%

Pre-Deployment Test Cases

The following lists are test scenarios written to test against the smart contract functions and usability, as well as security risks.

FeedToken

The following tests make sure FEED token functions as ERC20/BEP20 token standard and with the total supply capped at 100,000,000 FEED

  • should mint 31,750,000 FEEDs to treasury wallet

  • should be able to transfer to another user

  • should not be able to mint more than 100,000,000 FEEDs

  • should be able to mint exactly 100,000,000 FEEDs

FeedFarm

The following tests are for farming distributions to make sure the farming rewards, referral rewards, and fees are distributed

  • should not return any token if the pool does not exists

  • should distribute token according to schedule

  • should allow emergency withdraw

  • should give out FEEDs only after farming time

  • should not distribute FEEDs if no one deposit

  • should distribute FEEDs properly for each staker

  • should return correct pending FEEDs

  • should take LP as exit fees when exitFeeBP is set

  • should not be able to set exitFeeBP exceeding maximum exitFeeBP

  • should not allow withdrawal amount to be larger than the deposited amount

  • should be able to set exitFeeBP within maximum exitFeeBP

  • should return the correct number of pool length

  • should allow only the owner to set emission rate

  • should allow setting emission rate only after mining starts

  • should allow to update emission rate after each interval is over

  • should not allow duplicated to be added

  • should pay commission to the referrer when harvesting rewards

  • should set referral address when user is referred by another user

  • should allow only the owner to update referral bonus point

FeedTimelock

The following tests are for the timelock contract which held Team, Marketing, Reserves, and Development funds scheduled to release according to the distribution table.

  • should return correct views variable

  • should set release interval

  • should set release beneficiary address

  • should set token address and should set release amount

  • should return the correct block number

  • should only allow admin to perform actions

  • should deposit token to timelock

  • should not release token before release time

  • should release token after release time

  • should release token according to release schedule

  • should release token even remaining is less than release amount

  • should not accept any BNB

  • should not allow any deposit if there is already tokens locked

  • should not allow deposit less than the required minimum

  • should release any token if the balance is empty

Official Audits

We've engaged a top-tier smart contract auditor: https://www.certik.org/projects/feederfinance. Scope of work include audits of ALL SMART CONTRACTS (incl. currently deployed); mid/late-June 2021 expected first published audit report.