WaifuTv

CertiKFiles named in the report

CertiK reviewed WaifuTv on 31 Aug 2022: 33 findings, 0 critical; 10 marked fixed, 23 open.

No open critical findings
Open WaifuTv’s security record

The original report was removed from its address (seen 15 Oct 2026).

Trustblock does not review code.

Findings33

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

SeverityOpenAcknowledgedFixed
Critical000
High1401
Medium201
Low708
HighCentralization Risks in LiquidityManager.solFixed

In the contract `LiquidityManager` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority, set the price range, enable the sale, and withdraw token/ETH. ![](https://accelerator-tasks-prod.acc.corp.certik.com/59b0c898c9e148d7adcf512faf9b2a16/diagrams/centralization_LiquidityManager-LiquidityManager-_owner.svg)

Medium`initialize()` Is UnprotectedFixed

`initialize()` Is Unprotected The function `initialize()` is `public` and can be called by anyone as long as the contract is deployed.

LowConfusing Variable Name in PresaleHelperFixed

In the contract `PresaleHelper`, we could know the `price` & `earlyPrice` are used as the unit prices from the context. The variable name `price` & `earlyPrice` could be improved to be like `unitPrice` & `earlyUnitPrice`.

LowConfusing Variable Name in RevenuePaymentSplitterFixed

In the functions `payee` and `release`, shares are logged by `tokenId`. But in the function `shares` and `released` , the variable name _shares[**account**] , _released[**account**] and _erc20Released[token][**account**] are inconsistent with the context.

LowEnough Token is Needed For StablizationFixed

```solidity=99 }else if (mainTokenPrice > maxPrice) { // price is higher than threshold, send more tokens to LP uint256 mainReserveShouldBe = ((1 ether) * usdTokenReserve) / maxPrice; uint256 addMainTokenAmount = mainReserveShouldBe - mainTokenReserve; _sendMainTokensToLP(addMainTokenAmount); direction = StablizationDirection.DOWN; } ``` To stabilize the token price down, liquidity manager need to tranfer more token to pancake swap pair and update the reserves in pair. It would be failed, if the liquidity manager do not have enough token.

LowImproper Usage of `public` and `external` TypeFixed

`public` functions that are never called by the contract could be declared as `external`. `external` functions are more efficient than `public` functions.

LowIs `WalletLimit` Not Exempted From Checking By `wFixed

In the contract `waifuToken`, the list named `walletLimitDisabled` is only used to disable the limitation of the token sender's accumulated token transfer in the `transferLimitDuration` as the restriction of `walletTransferLimits`. By the literal understanding of `walletLimitDisabled`, the receiver's balance limitation checking might be controlled by this statement as well in the function `_afterTokenTransfer`. Raise this issue to confirm if the current implementation is by design.

LowLiquidity Might Drying Up as USD token Running ouFixed

As the stabilization methodology: 1. The selling of the main token takes the USD token out of the liquid pool, which makes the token price go down. 2. When the main token price is lower than the min price, the liquidity manager will remove the main token from the liquid pool. Thus, there is more liquidity removed from the pool by the stabilization, the Liquidity would dry up as its USD token balance run out.

LowMissing Error Message When Upgrading NodesFixed

In the functiona `upgradeNodes` and `upgradeNodesBatch`, the contract receives payment from the caller and upgrades the waifu Node from `fromTier` to `toTier`. It is assumed that the `toTier` Price must greater or equal to `fromTier` in the current implementation: ```solidity=263 address account = _msgSender(); uint256 totalPrice = (nodePrices[toTier] - nodePrices[fromTier]) * amount; waifuCashier.getPaymentFrom(account, totalPrice); ``` If a caller wants to upgrade the node to a cheaper tier, this function will revert because of the negative spread.

LowPotential Revert Due to Underflow in Function `geFixed

```solidity=179 return defaultClaimTax - taxRelief; ``` Function `getClaimTaxOf` reverts when defaultClaimTax < taxRelief;

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 (13)

  • PresaleHelper.sol
  • WaifuToken.sol
  • LiquidityManager.sol
  • extensions/ERC1155TempBalanceHistoryUpgradeable.sol
  • WaifuPerks.sol
  • extensions/ERC1155AggregateSupplyUpgradeable.sol
  • WaifuCashier.sol
  • WaifuManager.sol
  • RevenuePaymentSplitter.sol
  • PreLaunchToken.sol
  • EarlyWaifuHolders.sol
  • WaifuNodes.sol
  • PerkSaleHelper.sol

Part of WaifuTv’s security record

WaifuTv
Audits1 audit by 1 firmLast audit Aug 2022, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open WaifuTv’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