|Arbitrary Storage Write||N/A||PASS|
|Delegate Call to Untrusted Contract||N/A||PASS|
|Dependence on Predictable Variables||N/A||PASS|
|State Change External Calls||N/A||Pass|
|User Supplied Assertion||N/A||PASS|
|Critical Solidity Compiler||N/A||PASS|
|Overall Contract Safety||PASS|
POODL - Smart Contract Audit Report
POODL is a new competitor in the meme-coin space with frictionless fee redistribution.We audited POODL's token contract contract at 0x2c5282f04c43e759f273431ce5e231f55cbc4399 on the Binance Smart Chain mainnet. It is deployed behind an upgradable proxy at 0x4a68c250486a116dc8d6a0c5b0677de07cc09c5d.
Overview of the Contract:
Audit Findings Summary
- The total supply of the token is set to 100 trillion.
- No mint or burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
- As of the date of this report, 100% of the supply is held by the team.
- Users who hold tokens will automatically receive a portion the fees from a transaction tax on each transfer.
- A portion of the fee charged on transactions is also used to fund PancakeSwap liqudity.
- Liquidity-adds are funded by selling half of the tokens collected as fees, pairing the received BNB with the token, and adding it as liquidity to the BNB pair.
- The owner of the contract can exclude and include users from transfer fees, update the maximum transaction amount, update the minimum number of stored tokens to cause a liquidity-addition, and update the fee percentages at any time.
- The contract is upgradable, meaning the team can swap out the current contract for a new one at any time.
- The team has worked with us to streamline the logic of this contract.
- The contract utilizes SafeMath libraries to prevent overflows along with following the BEP20 standard.
- No security issues were identified in our analysis.
- As with any presale, ensure trust in the team prior to investing. The team is anonymous.
- Further, ensure trust in the team as they have substantial control in the ecosystem and can upgrade the contract to a new one at any time. We advise renouncing ownership after a successful launch.
- Date: April 22nd, 2021
- Update Date: April 22nd, 2021 - Updated implementation address, updated to PancakeswapV2, setter for numTokenToSell's value.
($) = payable function # = non-constant function + Initializable + ContextUpgradeable (Initializable) - [Int] __Context_init # - modifiers: initializer - [Int] __Context_init_unchained # - modifiers: initializer - [Int] _msgSender - [Int] _msgData + [Int] IERC20Upgradeable - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # + [Lib] SafeMathUpgradeable - [Int] tryAdd - [Int] trySub - [Int] tryMul - [Int] tryDiv - [Int] tryMod - [Int] add - [Int] sub - [Int] mul - [Int] div - [Int] mod - [Int] sub - [Int] div - [Int] mod + [Lib] AddressUpgradeable - [Int] isContract - [Int] sendValue # - [Int] functionCall # - [Int] functionCall # - [Int] functionCallWithValue # - [Int] functionCallWithValue # - [Int] functionStaticCall - [Int] functionStaticCall - [Prv] _verifyCallResult + OwnableUpgradeable (Initializable, ContextUpgradeable) - [Int] __Ownable_init # - modifiers: initializer - [Int] __Ownable_init_unchained # - modifiers: initializer - [Pub] owner - [Pub] renounceOwnership # - modifiers: onlyOwner - [Pub] transferOwnership # - modifiers: onlyOwner + ERC20Upgradeable (Initializable, ContextUpgradeable, IERC20Upgradeable) - [Int] __ERC20_init # - modifiers: initializer - [Int] __ERC20_init_unchained # - modifiers: initializer - [Pub] name - [Pub] symbol - [Pub] decimals - [Pub] totalSupply - [Pub] balanceOf - [Pub] transfer # - [Pub] allowance - [Pub] approve # - [Pub] transferFrom # - [Pub] increaseAllowance # - [Pub] decreaseAllowance # - [Int] _transfer # - [Int] _mint # - [Int] _burn # - [Int] _approve # - [Int] _beforeTokenTransfer # + Poodl (Initializable, ERC20Upgradeable, OwnableUpgradeable) - [Ext] initialize # - modifiers: initializer - [Pub] startSwapFunctionality # - modifiers: onlyOwner - [Pub] decimals - [Pub] balanceOf - [Pub] isExcluded - [Ext] isExcludedFromFee - [Ext] totalFees - [Pub] totalSupply - [Ext] totalLiquidity - [Ext] totalBurn - [Ext] deliver # - [Ext] reflectionFromToken - [Pub] tokenFromReflection - [Ext] excludeAccount # - modifiers: onlyOwner - [Ext] includeAccount # - modifiers: onlyOwner - [Prv] _tokenTransfer # - [Int] _transfer # - [Prv] swapAndLiquify # - modifiers: lockTheSwap - [Prv] swapTokensForEth # - [Prv] addLiquidity # - [Prv] _transferStandard # - [Prv] _transferToExcluded # - [Prv] _transferFromExcluded # - [Prv] _transferBothExcluded # - [Pub] setSwapAndLiquifyEnabled # - modifiers: onlyOwner - [Ext]
($) - [Prv] _reflectFee # - [Prv] _reflectBurn # - [Prv] _takeLiquidity # - [Prv] calculateTaxFee - [Prv] calculateBurnFee - [Prv] calculateLiquidityFee - [Prv] removeAllFee # - [Prv] restoreAllFee # - [Prv] _getValues - [Prv] _getTValues - [Prv] _getRValues - [Prv] _getRate - [Prv] _getCurrentSupply - [Prv] _getMaxTxAmount - [Ext] getTaxFee - [Ext] getLiquidityFee - [Ext] _setTaxFee # - modifiers: onlyOwner - [Ext] _setLiquidityFee # - modifiers: onlyOwner - [Pub] excludeFromFee # - modifiers: onlyOwner - [Pub] includeInFee # - modifiers: onlyOwner