Valinity Audit

CertiKFiles named in the report

CertiK reviewed Valinity (Valinity Audit) on 7 Feb 2023: 9 findings, 0 critical; 4 marked fixed, 5 open.

No open critical findings
Open the reportOpen Valinity’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings9

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High401
Medium000
Low103
HighPublic `mint()` FunctionFixed

```solidity=178 function mint(uint256 amount) public virtual returns (bool) { _mint(_msgSender(), amount); return true; } ``` Any address can call function `mint()` and mint tokens for itself.

LowIncreasing Zero Address's CreditFixed

```solidity=271 function _splitInviterFee(uint256 amount, address inviter) private returns (uint256 inviterAmount, uint256 remainingAmount) { inviterAmount = _inviterFeeSplit * amount / MULTIPLIER; remainingAmount = amount - inviterAmount; // inviterAmount goes to inviter's credits _memberships[inviter].credits += inviterAmount; // transfer inviterAmount to this contract _makePaymentFromBUSD(inviterAmount, address(this)); // remainingAmount goes to BUSDT _makePaymentFromBUSD(remainingAmount, address(_busdt)); } ``` A user can pay membership fees to activate itself via function `payMembership()` which triggers function `_splitInviterFee()` to increase the inviter's "credits" - the amount of claimable BUSD. Activating `_originMember` would increase the credits of its inviter, which is the zero address that cannot claim those BUSD tokens.

LowMissing Check on The Offer Type in Function `_buyFixed

Since function `buybackOffer(uint256 offerId, address seller, uint256 amountBUSD)` does not check if the offer is MFC_BUSD trading pair, it could be used to trade BUSD_MFC pair.

LowUnreasonable Value of `membershipFee`Fixed

```solidity=65 function createMember(address inviter, uint256 membershipFee) external { require(_memberExist(inviter), "Inviter is not member"); require(!_memberExist(_msgSender()), "Member already exist"); _createMember(_msgSender(), inviter); emit CreateMember(_msgSender(), inviter, block.timestamp); _payMembership(membershipFee); } ``` A user can call function `createMember()` for paying `membershipFee` to register as a whitelisted account. Since function `_payMembership()` only requires `membershipFee` > 0, even 1 Wei of BUSD is enough to call function `createMember()`.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (30)

  • contracts/treasury/BUSDT.sol
  • contracts/MFCMembership.sol
  • contracts/lib/utils/introspection/IERC165.sol
  • contracts/lib/access/AccessControl.sol
  • contracts/lib/utils/Strings.sol
  • contracts/lib/utils/Context.sol
  • contracts/lib/access/IAccessControl.sol
  • contracts/Registrar.sol
  • contracts/governance/Governable.sol
  • contracts/MFCCollateralLoan.sol
  • contracts/RegistrarClient.sol
  • contracts/treasury/Treasury.sol
  • contracts/MFCTradingLicense.sol
  • contracts/lib/utils/Multisig.sol
  • contracts/token/MFCToken.sol
  • contracts/lib/utils/introspection/ERC165.sol
  • contracts/exchange/MFCExchangeCap.sol
  • contracts/access/AdminAgent.sol
  • contracts/access/AdminGovernanceAgent.sol
  • contracts/lib/token/BEP20/BEP20.sol
  • contracts/lib/token/BEP20/IBEP20.sol
  • contracts/exchange/MFCExchange.sol
  • contracts/governance/MFCGovernance.sol
  • contracts/access/WithdrawAgent.sol
  • contracts/lib/access/Ownable.sol
  • contracts/exchange/ExchangeCheck.sol
  • contracts/RegistrarMigrator.sol
  • contracts/lib/token/BEP20/MFCBEP20.sol
  • contracts/access/BackendAgent.sol
  • contracts/exchange/MFCExchangeFloor.sol

Part of Valinity’s security record

Valinity
Audits4 audits by 1 firmLast audit Oct 2023, by CertiK.
Critical findingsNo open critical findingsAcross 4 reports.
Open Valinity’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us