Pet Kingdom Token - Smart Contract Audit Report
Summary
Pet Kingdom ($PKD) is a new community-driven DeFi token on the Binance Smart Chain.
Notes on the Contract:Audit Findings Summary
- The total supply of the token is set to 20 million $PKD [20,000,000].
- No minting or burn functions are accessible; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
- At the time of writing this report, 16.68% of the total $PKD token supply belongs to the team's devReward wallet.
- 8.34% of the total supply is in Pancakeswap liquidity.
- Of that liquidity, 97% of the LP tokens are stored in a Token locking contract that will vest to the team on March 14, 2022.
- The next 6 holders own a cumulative 45.8% of the total token supply.
- There is a 'farmer fee', a 'devReward fee', and an 'LP fee' on all transactions for any "non-excluded" address that participates in a transfer.
- The tokens collected from the farmer fee are sent directly to the team's farmer wallet.
- The tokens collected from the devReward fee are sent directly to the team's devReward wallet.
- The tokens collected from the LP fee are sent directly to the team's LP wallet. The process of adding liquidity within this protocol is entirely manual. There is no guarantee that the tokens accumulated from the LP fee will be used to provide liquidity.
- Ownership has been renounced.
- The owner of the contract was previously able to exclude and include accounts from transfer fees.
- The owner was previously able to update the team's farmer wallet, devReward wallet, and LP wallet to any addresses at any time.
- The owner was previously able to set and update a maximum transaction percent at any time, which will impose a limit to the number of tokens that can be transferred during any given transaction.
- The contract complies with the BEP20 standard.
- As the project is implemented with Solidity v0.8.0, it is protected from overflows.
- No external threats were identified.
- Ownership has been renounced by the team.
- Please ensure trust in the team as there are no automatic liquidity adds.
- Date: September 22nd, 2021
- Updated: September 29th, 2021 after the team renounced ownership.
Audit Results
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Delegate Call to Untrusted Contract | N/A | PASS |
Dependence on Predictable Variables | N/A | PASS |
Deprecated Opcodes | N/A | PASS |
Ether Thief | N/A | PASS |
Exceptions | N/A | PASS |
External Calls | N/A | PASS |
Flash Loans | N/A | PASS |
Integer Over/Underflow | N/A | PASS |
Multiple Sends | N/A | PASS |
Oracles | N/A | PASS |
Suicide | N/A | PASS |
State Change External Calls | N/A | PASS |
Unchecked Retval | N/A | PASS |
User Supplied Assertion | N/A | PASS |
Critical Solidity Compiler | N/A | PASS |
Overall Contract Safety | PASS |
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
+ [Int] IUniswapV2Factory
- [Ext] feeTo
- [Ext] feeToSetter
- [Ext] getPair
- [Ext] allPairs
- [Ext] allPairsLength
- [Ext] createPair #
- [Ext] setFeeTo #
- [Ext] setFeeToSetter #
+ [Int] IUniswapV2Router01
- [Ext] factory
- [Ext] WETH
- [Ext] addLiquidity #
- [Ext] addLiquidityETH ($)
- [Ext] removeLiquidity #
- [Ext] removeLiquidityETH #
- [Ext] removeLiquidityWithPermit #
- [Ext] removeLiquidityETHWithPermit #
- [Ext] swapExactTokensForTokens #
- [Ext] swapTokensForExactTokens #
- [Ext] swapExactETHForTokens ($)
- [Ext] swapTokensForExactETH #
- [Ext] swapExactTokensForETH #
- [Ext] swapETHForExactTokens ($)
- [Ext] quote
- [Ext] getAmountOut
- [Ext] getAmountIn
- [Ext] getAmountsOut
- [Ext] getAmountsIn
+ [Int] IUniswapV2Router02 (IUniswapV2Router01)
- [Ext] removeLiquidityETHSupportingFeeOnTransferTokens #
- [Ext] removeLiquidityETHWithPermitSupportingFeeOnTransferTokens #
- [Ext] swapExactTokensForTokensSupportingFeeOnTransferTokens #
- [Ext] swapExactETHForTokensSupportingFeeOnTransferTokens ($)
- [Ext] swapExactTokensForETHSupportingFeeOnTransferTokens #
+ [Int] IBEP20
- [Ext] totalSupply
- [Ext] decimals
- [Ext] symbol
- [Ext] name
- [Ext] getOwner
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ Context
- [Int] _msgSender
- [Int] _msgData
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] isAuthorized
- [Pub] transferOwnership #
- modifiers: onlyAuthorized
- [Pub] updateActorPermission #
- modifiers: onlyAuthorized
- [Pub] isActorAuthorized
+ [Lib] Address
- [Int] isContract
- [Int] sendValue #
- [Int] functionCall #
- [Int] functionCall #
- [Int] functionCallWithValue #
- [Int] functionCallWithValue #
- [Int] functionStaticCall
- [Int] functionStaticCall
- [Int] functionDelegateCall #
- [Int] functionDelegateCall #
- [Int] verifyCallResult
+ [Lib] SafeMath
- [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
+ BEP20 (Context, IBEP20, Ownable)
- [Pub] #
- [Ext] getOwner
- [Pub] name
- [Pub] decimals
- [Pub] symbol
- [Pub] totalSupply
- [Pub] balanceOf
- [Pub] transfer #
- [Pub] allowance
- [Pub] approve #
- [Pub] transferFrom #
- [Pub] increaseAllowance #
- [Pub] decreaseAllowance #
- [Pub] mint #
- modifiers: onlyOwner
- [Int] _transfer #
- [Int] _mint #
- [Int] _burn #
- [Int] _approve #
- [Int] _burnFrom #
+ TokenBEP20 (BEP20)
- [Pub] #
- modifiers: BEP20
- [Int] _transfer #
- [Pub] updateMinter #
- modifiers: onlyMinter
- [Pub] updatedevReward #
- modifiers: onlyOwner
- [Pub] updateLPAdrress #
- modifiers: onlyOwner
- [Pub] mint #
- modifiers: onlyMinter
- [Ext] setFarmAdrress #
- modifiers: onlyOwner
- [Pub] includeInFee #
- modifiers: onlyOwner
- [Pub] excludeFromFee #
- modifiers: onlyOwner
- [Pub] isExcludedFromFee
- [Pub] setAntiWhale #
- modifiers: onlyAuthorized
- [Pub] setMaxTransferAmount #
- modifiers: onlyAuthorized
- [Ext] ($)