As of 3 Nov 2026, HeHe has 1 audit report on Trustblock, by CertiK, dated 7 Dec 2023. That report lists no open critical findings. It also holds 1 deployed contract on 1 chain.
Record last updated . It holds audits and findings, contracts and incidents up to Nov 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| Hehe token | Security firm: CertiK | Date: | Scope: 1 address on Ethereum | No open critical findings | Open · skynet.certik.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 1 | 0 | 1 |
| Medium | 0 | 0 | 0 |
| Low | 0 | 3 | 3 |
### Ownable In the contract `Ownable` the role `_owner` has authority over the functions listed below. - transferOwnership(): transfer ownership of the contract to a new account. - renounceOwnership(): leave the contract without owner. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and manage the ownership of the contract. ### LzApp In the contract `LzApp` the role `_owner` has authority over the functions listed below. - setConfig(): set the configuration of the LayerZero messaging library of the specified version. - setSendVersion(): set the `send()` LayerZero messaging library version to `_version`. - setReceiveVersion(): set the `lzReceive()` LayerZero messaging library version to `_version` - forceResumeReceive(): only when the UA needs to resume the message flow in blocking mode and clear the stored payload. - setTrustedRemote(): manage state variable `trustedRemoteLookup`. - setTrustedRemoteAddress(): manage state variable `trustedRemoteLookup`. - setPrecrime(): manage state variable `precrime`. - setMinDstGas(): manage state variable `minDstGasLookup`. - setPayloadSizeLimit(): manage state variable `payloadSizeLimitLookup`. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and manage the configuration of the contract. ### OFTCore In the contract `OFTCore` the role `_owner` has authority over the functions listed below. - setUseCustomAdapterParams(): manage state variable `useCustomAdapterParams` Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and manage the configuration of the contract.
Open the reportIn the function `setTrustedRemote()`, it is noted that `_path` should be `abi.encodePacked(address, address)`. However, the `bytes calldata _path` is missing a sanity check for ensuring it is correct(e.g. address size == 20 bytes on EVM chains), which may cause the contract can not work as intended. Similar issue happens in the other functions, which contain `bytes calldata` or `bytes memory` address input.
Open the reportThere should always be events emitted in sensitive functions that are controlled by centralization roles.
Open the reportAddresses are not validated before assignment or external calls, potentially allowing the use of zero addresses and leading to unexpected behavior or vulnerabilities. For example, transferring tokens to a zero address can result in a permanent loss of those tokens. ```solidity=119 precrime = _precrime; ``` - `_precrime` is not zero-checked before being used. ```solidity=32 lzEndpoint = ILayerZeroEndpoint(_endpoint); ``` - `_endpoint` is not zero-checked before being used.
Open the report| Address | Chain | Source code |
|---|---|---|
| 0x488c…ab8d0x488cf9905cd9f5dea7212b4571c8b1052631ab8d | Chain: Ethereum | Source code: Verified source |
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="hehe"></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