Green Climate World Token - Smart Contract Audit Report

Summary

Green Climate World Audit Report Green Climate World Token ($WGC) is a new BEP20 token on the Binance Smart Chain.

The Green Climate World Token contract is deployed at 0x1e4ffa373d94c95717fb83ec026b2e0e2f443bb0 on the Binance Smart Chain Mainnet.

Notes of the contract:
  • The total supply of the token is set to 1 billion [1,000,000,000] $WGC.
  • No minting or burn functions are present beyond deployment; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
  • At the time of writing this report, 68.96% of the total $WGC token supply is stored in the Green Climate World: Deployer address.
  • The next 3 holders own a cumulative 30% of the total supply.
  • .093% of the total supply is in Pancakeswap liquidity.
  • Of that liquidity, 97.14% of the LP tokens are in possession of this holder.

  • The owner has the ability to register any address as a consumer and add consumer variables which are then stored as records on the blockchain.
  • Adding/removing consumer addresses, setting consumer variables, and distributing rewards, is a manual process and would be unreasonable gas-wise to do so for all ~3000 holders.
  • Given the rewards mechanism is manual and there is no automated collection of rewards, users will not be able to receive any rewards from the contract. If the owner were to send rewards by use of this function, it will reach the block gas limit and the transaction will be reverted.
  • Some functions could have been declared external instead of public to save some gas, but as this is already deployed this is merely informational.
  • The contract utilizes SafeMath libraries along with following the BEP20 standard.
Audit Findings Summary
  • No external threats were identified.
  • Some major flaws were identified regarding the team's rewards system logic, making it inoperative.
  • Date: September 12th, 2021

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
Integer Over/UnderflowN/APASS
Logical IssuesThe rewards mechanism is not functional in its current state.CAUTION
Multiple SendsN/APASS
SuicideN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety CAUTION

ERC20 Token Graph

Multi-file Token


 ($) = payable function
 # = non-constant function
 
 Int = Internal
 Ext = External
 Pub = Public

 +  Context 
    - [Int]  #
    - [Int] _msgSender
    - [Int] _msgData

 +  Ownable (Context)
    - [Int]  #
    - [Pub] owner
    - [Pub] isOwner
    - [Pub] renounceOwnership #
       - modifiers: onlyOwner
    - [Pub] transferOwnership #
       - modifiers: onlyOwner
    - [Int] _transferOwnership #

 + [Int] IERC20 
    - [Ext] totalSupply
    - [Ext] balanceOf
    - [Ext] transfer #
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transferFrom #

 + [Lib] SafeMath 
    - [Int] add
    - [Int] sub
    - [Int] sub
    - [Int] mul
    - [Int] div
    - [Int] div
    - [Int] mod
    - [Int] mod

 +  ERC20 (Context, IERC20)
    - [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] _burnFrom #

 +  ERC20Detailed (IERC20)
    - [Pub]  #
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals

 +  GreenClimateToken (Context, ERC20, ERC20Detailed, Ownable)
    - [Pub]  #
       - modifiers: ERC20Detailed
    - [Pub] registerConsumer #
       - modifiers: onlyOwner
    - [Pub] setConsumerReadings #
       - modifiers: onlyOwner
    - [Pub] returnConsumerReadings1
    - [Pub] returnConsumerReadings2
    - [Pub] sendRewards #
       - modifiers: onlyOwner
    - [Pub] sendTimelyRewards #
       - modifiers: onlyOwner
    - [Pub] consumerWallet
    - [Pub] consumerNumbers
       - modifiers: onlyOwner
    - [Pub] consumerRewards