Security Audit Report
</> APIProxyAdmin0x8384d851E3…63F1414C
51out of 100
7 blocking issues
At least one finding describes a plausible path to loss of funds or control. Read those findings before interacting with this contract.
- Findings
- 27
- Engines
- aderyn, slither
- Scanned
- Source
- Published
Findings by severity
Critical
0
High
7
Medium
0
Low
8
Informational
12
Gas
0
Findings (27)
2 checks · 7 instances
A plausible path to loss of funds or control. Treat as blocking.Instance 1 of 6
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (project/contracts/proxy/TransparentUpgradeableProxy.sol#131-135) calls TransparentUpgradeableProxy.ifAdmin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#101-107) which halt the execution return(uint256,uint256)(0,returndatasize()()) (project/contracts/proxy/TransparentUpgradeableProxy.sol#34)
Instance 2 of 6
TransparentUpgradeableProxy.ifAdmin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#101-107) calls Proxy._fallback() (project/contracts/proxy/TransparentUpgradeableProxy.sol#40-43) which halt the execution return(uint256,uint256)(0,returndatasize()()) (project/contracts/proxy/TransparentUpgradeableProxy.sol#34)
Instance 3 of 6
TransparentUpgradeableProxy.admin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#113-115) calls TransparentUpgradeableProxy.ifAdmin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#101-107) which halt the execution return(uint256,uint256)(0,returndatasize()()) (project/contracts/proxy/TransparentUpgradeableProxy.sol#34)
Instance 4 of 6
TransparentUpgradeableProxy.implementation() (project/contracts/proxy/TransparentUpgradeableProxy.sol#117-119) calls TransparentUpgradeableProxy.ifAdmin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#101-107) which halt the execution return(uint256,uint256)(0,returndatasize()()) (project/contracts/proxy/TransparentUpgradeableProxy.sol#34)
Instance 5 of 6
TransparentUpgradeableProxy.changeAdmin(address) (project/contracts/proxy/TransparentUpgradeableProxy.sol#121-125) calls TransparentUpgradeableProxy.ifAdmin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#101-107) which halt the execution return(uint256,uint256)(0,returndatasize()()) (project/contracts/proxy/TransparentUpgradeableProxy.sol#34)
Instance 6 of 6
TransparentUpgradeableProxy.upgradeTo(address) (project/contracts/proxy/TransparentUpgradeableProxy.sol#127-129) calls TransparentUpgradeableProxy.ifAdmin() (project/contracts/proxy/TransparentUpgradeableProxy.sol#101-107) which halt the execution return(uint256,uint256)(0,returndatasize()()) (project/contracts/proxy/TransparentUpgradeableProxy.sol#34)
It appears that the contract includes a payable function to accept Ether but lacks a corresponding function to withdraw it, which leads to the Ether being locked in the contract. To resolve this issue, please implement a public or external function t [ProxyAdmin.sol:18; TransparentUpgradeableProxy.sol:96]
8 checks · 8 instances
Worth knowing about. Rarely a reason on its own not to interact.4 checks · 12 instances
Style and convention. No effect on what the contract does.Scope and limitations
This is automated static analysis, run by aderyn and slither against this contract’s published source. It is not a manual audit and nobody has reviewed these results by hand.
- It finds known patterns. A novel bug, or one that depends on how this contract is used alongside another, is exactly what it does not find.
- It cannot judge intent. A contract that lets its owner mint without limit is working as written; whether that is acceptable is not a question a scanner answers.
- It says nothing about the people behind the contract, the liquidity, or whether the deployer still holds the keys.
- A high score means the analysers had few complaints. It is not a guarantee, an endorsement, or advice to interact.
Read the source yourself where it matters. This contract’s source is published.