As of 24 Oct 2026, Weeweepad has 1 audit report on Trustblock, by QuillAudits, dated 3 Jun 2024. That report lists no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Oct 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| Weeweepad | Security firm: QuillAudits | Date: | Scope: Files named in the report | No open critical findings | Open · quillaudits.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 6 |
| Medium | 0 | 0 | 3 |
| Low | 1 | 0 | 6 |
This is because when nfts are purchased, entire funds are immediately sent to the companyAddress.The issue here is that the companyAddress was mistakenly uninitialized in the constructor due to a coding error and therefore set to address(0). Which means all funds will be burnt or lost (sent to address(0)).
Open the reportstake function is designed to take address and amount parameters. This implementation introduces the possibility of malicious users passing stakers address with 1 wei, and repeatedly calling this for the purpose of extending the redeem period of these stakers.
Open the reportRemoving an address from the whitelisted addresses will set the mapping of whitelist to false, change the element in the whitelistItems[index[i]] to the last element and then delete from the whitelistIndex and whitelistItems mapping. Not updating the whitelistIndex mapping before deleting will introduce an unexpected behavior.
Open the reportThis is a custom token contract built without the integration of the standard ERC20 contract, like the Openzeppelin library. The approve function is designed to always increase the amount of tokens a spender can spend.This introduces an issue that makes it impossible to ever reduce the amount of a spender unless the spender has exhausted their approved amount.
Open the reportThe buy function requires a signature operation getting signed by the signingkey om the backend. However, it allows for signature replay attacks as users can use the same signature multiple times.
Open the reportIn addPublicRandom, it updates _addressess[val] to _addresses[arrLength - 1]. However, _addresses[arrLength - 1] was already deleted before that line. Therefore, some addresses will be lost and not get whitelisted. This will also at some point add the null address as a whitelisted address with a tier. Some addresses will be lost in the process of adding and will sometimes run into an arithmetic error due to the second loop (in a situation when provided address parameters are lesser than 32).
Open the reportIn the case where isNativeToken == false after people funds are already in the contract and sale has ended, even without minimum raise not check before removing sale token. This is possible due to removeOtherTokens() function preventing token from being fundToken but doesn't prevent token from being saleToken in the case where isNativeToken == false, making rugpull a possibility:
Open the reportthe buy function will revert anytime a user intends to get the StakingLot or NFTStakingLot token. There is a if-condition in the the _beforeTokenTransfer hook function that is ensuring that the sender lockup period has reached and that the lastBoughtTimestamp of the sender is greater than the receiver.When users invoke the buy function, it runs until it enters the _mint function and then reverts due to the extended logic implementation on the _beforeTokenTransfer since this is called within the _mint function.It is important to stress that the logic in the _beforeTokenTransfer is flawed. Since it expects that token transfer to be enabled after the lockup period is over, the if-condition is expected to be lastBoughtTimestamp[from].add(lockupPeriod) <= block.timestamp (check lockupFree modifier).
Open the reportThe changeFeeInfoOnPool() call setFeeInfo() on the pool which requires pool not started yet, however their is not minimum cooldown time before pool starts meaning pool creator can set pool to start 2 seconds immediately pool gets created preventing protocol factory from setting fee.
Open the reportTo detect when addresses have been whitelisted, it is compared that whitelist[addresses[i]] is not equal to the true constant value.
Open the reportThese variables are only set at the constructor level within the contract. This will create a storage slot for each of the variables.
Open the reportThese functions receive an address parameter in order to either modify the pool creator or the fee addresses but both fail to check that these addresses are non-zero addresses.
Open the reportremoveOtherTokens() allows creator to remove other token from the contract but doesn't handle native token in the case where isNativeToken == false
Open the reportThere are some variables and modifiers declared within the contracts but were never used.
Open the reportERC20 functions may not behave as expected. For example: return values are not always meaningful. It is recommended to use OpenZeppelin's SafeERC20 library.
Open the reportThe reports name a repository or files. Open a report to see its scope.
Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.
Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-tb-project-slug="weeweepad"></div></body>
Paste the code where the label should appear. It uses no API credit and updates by itself.
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