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 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
Integer Over/Underflow N/A PASS
Logical Issues The rewards mechanism is not functional in its current state. CAUTION
Multiple Sends 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   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