Audit Date: 1/14/2023
Audit Score
Overall Audit Score
0%Backdoors
0%Fees
0%Smart Contract Complexity
0%Team Trust
0%Launch Date
Social Links
Audited by the WatchDogs Team.
Summary
It was discovered that Yield Machine has an error in their code that allows the developers to withdraw funds through the fee function.
function payPlatformFee(uint256 amount) internal returns (uint256) {
uint256 fee = amount.mul(PLATFORM_FEE_PERCENTAGE).div(PERCENTAGE_DIVISOR);
for (uint256 i = 0; i < beneficiaries.length; i++) {
BUSDToken.transferFrom(address(msg.sender), address(beneficiaries[i]), fee.mul(beneficiaries.length));
}
emit PlatformFeePaid(fee);
return fee;
}
Line 726: “address(beneficiaries[i]), fee.mul”
it should say: “address(beneficiaries[i]), fee.div”
The contract is a BUSD reward pool with 2-5% daily returns. User’s investments cannot be withdrawn. The user earns their funds back through withdrawing investment interest.
Contract Details
Chain | BSC |
Token | BUSD |
dApp Type | ROI dApp |
Daily ROI Percent | 2-5% |
Referral Percentage | 6% |
Minimum Deposit | 1 BUSD (not modifiable by owner) |
Maximum Deposit | 50,000 BUSD (not modifiable by owner) |
Timelock | ∞ (Users can only withdraw rewards) |
Owner Privileges
Initialize | Starts the smart contract and allows deposits & withdrawals. This is OK. |
addBeneficiary | The Owner can add/remove up to 4 addresses to receive platform fees. |
function addBeneficiary(address payable beneficiary) public onlyOwner {
require(beneficiaries.length < MAXIMUM_BENEFICIARIES, "Maximum beneficiaries reached");
beneficiaries.push(beneficiary);
emit BeneficiaryAdded(beneficiary);
}
function removeBeneficiary(address payable beneficiary) public onlyOwner {
for (uint256 i = 0; i < beneficiaries.length; i++) {
if (beneficiaries[i] == beneficiary) {
beneficiaries[i] = beneficiaries[beneficiaries.length - 1];
beneficiaries.pop();
break;
}
}
Fees
Deposit Fees | |
3% | Can be Increased to 6.5% |
Deposit Fees Smart Contract Code
uint256 public PLATFORM_FEE_PERCENTAGE = 30; // 3%
uint256 public constant PLATFORM_FEE_MAX_PERCENTAGE = 65; // 6.5%
Withdrawal Fees | |
3% | Can be Increased to 6.5% |
10% of rewards are taken from withdrawal and reinvested into contract under users address.
Withdrawal Fees Smart Contract Code
uint256 public constant AUTO_REINVEST_MIN_PERCENTAGE = 100; // 10%
uint256 public constant AUTO_REINVEST_MAX_PERCENTAGE = 1000; // 100%
uint256 public constant AUTO_REINVEST_STEP_PERCENTAGE = 100; // 10%
Trust
They had errors in their previous contract and fixed it.
Disclaimer
DYOR – Please do your own research and only invest in what you can afford to lose. This contract has been manually audited by the WatchDogs.cc team for the specified smart contract address.
https://www.diffchecker.com/5nHPiNWQ/
OLD CONTRACT: https://bscscan.com/address/0xa7ef4b67d3bb2945f5a3f78862f7c09c7b7daa64
https://bscscan.com/address/0x36bfa02092e6b594e715cb8c04d08d9bc0e5dc22