Wrapped AllianceBlock Token Token Logo

WALBT [Wrapped AllianceBlock] Token

About WALBT

Listings

Token 3 years
CoinGecko 4 years
CoinMarketCap 4 years
white paper

AllianceBlock seamlessly brings DeFi and TradFi together

Laser Scorebeta Last Audit: 30 May 2022

report
Token seems to be legit.


Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.


Contract ownership is semi-renounced (passed to a contract)

WrappedToken.constructor(string,string,uint8).decimals (contracts/WrappedToken.sol#18) shadows:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#89-91) (function)
Rename the local variables that shadow another component.

Additional information: link

ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/ERC20Permit.sol#37-105) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= _deadline,ERC20Permit: expired _deadline) (contracts/ERC20Permit.sol#46)
Avoid relying on block.timestamp.

Additional information: link

ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/ERC20Permit.sol#37-105) uses assembly
- INLINE ASM (contracts/ERC20Permit.sol#64-77)
- INLINE ASM (contracts/ERC20Permit.sol#88-97)
ERC20Permit._chainID() (contracts/ERC20Permit.sol#146-153) uses assembly
- INLINE ASM (contracts/ERC20Permit.sol#148-150)
Do not use evm assembly.

Additional information: link

Different versions of Solidity is used:
- Version used: ['0.7.6', '>=0.6.0<0.8.0', '^0.7.0']
- ^0.7.0 (@openzeppelin/contracts/access/Ownable.sol#3)
- ^0.7.0 (@openzeppelin/contracts/math/SafeMath.sol#3)
- ^0.7.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)
- ^0.7.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- ^0.7.0 (@openzeppelin/contracts/utils/Counters.sol#3)
- ^0.7.0 (@openzeppelin/contracts/utils/Pausable.sol#3)
- 0.7.6 (contracts/ERC20Permit.sol#2)
- 0.7.6 (contracts/WrappedToken.sol#2)
- 0.7.6 (contracts/interfaces/IERC2612Permit.sol#2)
Use one Solidity version.

Additional information: link

Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-23) is never used and should be removed
Counters.decrement(Counters.Counter) (@openzeppelin/contracts/utils/Counters.sol#37-39) is never used and should be removed
SafeMath.div(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#135-138) is never used and should be removed
SafeMath.div(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#190-193) is never used and should be removed
SafeMath.mod(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#152-155) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#210-213) is never used and should be removed
SafeMath.mul(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#116-121) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#24-28) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#60-63) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#70-73) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#45-53) is never used and should be removed
SafeMath.trySub(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#35-38) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.7.0 (@openzeppelin/contracts/access/Ownable.sol#3) allows old versions
Pragma version^0.7.0 (@openzeppelin/contracts/math/SafeMath.sol#3) allows old versions
Pragma version^0.7.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) allows old versions
Pragma version^0.7.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) allows old versions
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) is too complex
Pragma version^0.7.0 (@openzeppelin/contracts/utils/Counters.sol#3) allows old versions
Pragma version^0.7.0 (@openzeppelin/contracts/utils/Pausable.sol#3) allows old versions
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.

Additional information: link

Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._owner (contracts/ERC20Permit.sol#38) is not in mixedCase
Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._spender (contracts/ERC20Permit.sol#39) is not in mixedCase
Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._amount (contracts/ERC20Permit.sol#40) is not in mixedCase
Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._deadline (contracts/ERC20Permit.sol#41) is not in mixedCase
Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._v (contracts/ERC20Permit.sol#42) is not in mixedCase
Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._r (contracts/ERC20Permit.sol#43) is not in mixedCase
Parameter ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)._s (contracts/ERC20Permit.sol#44) is not in mixedCase
Parameter ERC20Permit.nonces(address)._owner (contracts/ERC20Permit.sol#110) is not in mixedCase
Parameter WrappedToken.mint(address,uint256)._account (contracts/WrappedToken.sol#28) is not in mixedCase
Parameter WrappedToken.mint(address,uint256)._amount (contracts/WrappedToken.sol#28) is not in mixedCase
Parameter WrappedToken.burnFrom(address,uint256)._account (contracts/WrappedToken.sol#37) is not in mixedCase
Parameter WrappedToken.burnFrom(address,uint256)._amount (contracts/WrappedToken.sol#37) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (@openzeppelin/contracts/utils/Context.sol#21)" inContext (@openzeppelin/contracts/utils/Context.sol#15-24)
Remove redundant statements if they congest code but offer no value.

Additional information: link

ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/ERC20Permit.sol#37-105) uses literals with too many digits:
- mstore(uint256,uint256)(memPtr_permit_asm_1,0x1901000000000000000000000000000000000000000000000000000000000000) (contracts/ERC20Permit.sol#92)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#54-57)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#63-67)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#72-74)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#89-91)
totalSupply() should be declared external:
- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#96-98)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#103-105)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#115-118)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#134-137)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#152-156)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#170-173)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#189-192)
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) should be declared external:
- ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/ERC20Permit.sol#37-105)
nonces(address) should be declared external:
- ERC20Permit.nonces(address) (contracts/ERC20Permit.sol#110-112)
mint(address,uint256) should be declared external:
- WrappedToken.mint(address,uint256) (contracts/WrappedToken.sol#28-30)
burnFrom(address,uint256) should be declared external:
- WrappedToken.burnFrom(address,uint256) (contracts/WrappedToken.sol#37-49)
pause() should be declared external:
- WrappedToken.pause() (contracts/WrappedToken.sol#52-54)
unpause() should be declared external:
- WrappedToken.unpause() (contracts/WrappedToken.sol#57-59)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:
No disclosed threats
No disclosed threats


BscScan page for the token does not contain additional info: website, socials, description, etc.

Additional information: link


Unable to verify token contract address on the website


Unable to find audit link on the website


Token is not listed at Mobula.Finance

Additional information: link


Unable to find token on CoinHunt

Additional information: link


Young tokens have high risks of price dump / death

Price for WALBT

News for WALBT