Pet Kingdom Token - Smart Contract Audit Report

Summary

Pet Kingdom Audit Report Pet Kingdom ($PKD) is a new community-driven DeFi token on the Binance Smart Chain.

The Pet Kingdom Token contract is deployed at 0xa7c97d58cb980a701e3c6e4e6c45554eeb9aa878 on the Binance Smartchain mainnet.

Notes on the Contract:
  • 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.
Audit Findings Summary
  • 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 CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
Delegate Call to Untrusted ContractN/APASS
Dependence on Predictable VariablesN/APASS
Deprecated OpcodesN/APASS
Ether ThiefN/APASS
ExceptionsN/APASS
External CallsN/APASS
Flash LoansN/APASS
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
OraclesN/APASS
SuicideN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

Function Graph

ERC20 Token Graph


Inheritence Chart

Multi-file Token


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]  ($)