StargateToken Token Logo

STG [Stargate] Token

About STG

Listings

Token 3 years
CoinGecko 3 years
CoinMarketCap 3 years
white paper

A composable native asset bridge with unified liquidity and instant guaranteed finality

Social

Laser Scorebeta Last Audit: 10 July 2022

report
Token seems to be (relatively) fine. It still become a scam, but probability is moderate.

OmnichainFungibleToken.constructor(string,string,address,uint16,uint256)._name (contracts/OmnichainFungibleToken.sol#27) shadows:
- ERC20._name (@openzeppelin/contracts/token/ERC20/ERC20.sol#42) (state variable)
OmnichainFungibleToken.constructor(string,string,address,uint16,uint256)._symbol (contracts/OmnichainFungibleToken.sol#28) shadows:
- ERC20._symbol (@openzeppelin/contracts/token/ERC20/ERC20.sol#43) (state variable)
StargateToken.constructor(string,string,address,uint16,uint256)._name (contracts/StargateToken.sol#9) shadows:
- ERC20._name (@openzeppelin/contracts/token/ERC20/ERC20.sol#42) (state variable)
StargateToken.constructor(string,string,address,uint16,uint256)._symbol (contracts/StargateToken.sol#10) shadows:
- ERC20._symbol (@openzeppelin/contracts/token/ERC20/ERC20.sol#43) (state variable)
Rename the local variables that shadow another component.

Additional information: link

Reentrancy in OmnichainFungibleToken.sendTokens(uint16,bytes,uint256,address,bytes) (contracts/OmnichainFungibleToken.sol#54-84):
External calls:
- endpoint.send{value: msg.value}(_dstChainId,dstContractLookup[_dstChainId],payload,msg.sender,zroPaymentAddress,adapterParam) (contracts/OmnichainFungibleToken.sol#75-82)
Event emitted after the call(s):
- SendToChain(_dstChainId,_to,_qty) (contracts/OmnichainFungibleToken.sol#83)
Apply the check-effects-interactions pattern.

Additional information: link

OmnichainFungibleToken.lzReceive(uint16,bytes,uint64,bytes) (contracts/OmnichainFungibleToken.sol#86-114) uses assembly
- INLINE ASM (contracts/OmnichainFungibleToken.sol#102-104)
Do not use evm assembly.

Additional information: link

Different versions of Solidity is used:
- Version used: ['0.7.6', '>=0.5.0', '>=0.6.0<0.8.0', '^0.7.0']
- >=0.5.0 (@layerzerolabs/contracts/contracts/interfaces/ILayerZeroEndpoint.sol#3)
- >=0.5.0 (@layerzerolabs/contracts/contracts/interfaces/ILayerZeroReceiver.sol#3)
- >=0.5.0 (@layerzerolabs/contracts/contracts/interfaces/ILayerZeroUserApplicationConfig.sol#3)
- ^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.6 (contracts/OmnichainFungibleToken.sol#3)
- 0.7.6 (contracts/StargateToken.sol#3)
Use one Solidity version.

Additional information: link

Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-23) is never used and should be removed
ERC20._setupDecimals(uint8) (@openzeppelin/contracts/token/ERC20/ERC20.sol#287-289) 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.5.0 (@layerzerolabs/contracts/contracts/interfaces/ILayerZeroEndpoint.sol#3) allows old versions
Pragma version>=0.5.0 (@layerzerolabs/contracts/contracts/interfaces/ILayerZeroReceiver.sol#3) allows old versions
Pragma version>=0.5.0 (@layerzerolabs/contracts/contracts/interfaces/ILayerZeroUserApplicationConfig.sol#3) allows old versions
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
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 OmnichainFungibleToken.pauseSendTokens(bool)._pause (contracts/OmnichainFungibleToken.sol#41) is not in mixedCase
Parameter OmnichainFungibleToken.setDestination(uint16,bytes)._dstChainId (contracts/OmnichainFungibleToken.sol#46) is not in mixedCase
Parameter OmnichainFungibleToken.setDestination(uint16,bytes)._destinationContractAddress (contracts/OmnichainFungibleToken.sol#46) is not in mixedCase
Parameter OmnichainFungibleToken.sendTokens(uint16,bytes,uint256,address,bytes)._dstChainId (contracts/OmnichainFungibleToken.sol#55) is not in mixedCase
Parameter OmnichainFungibleToken.sendTokens(uint16,bytes,uint256,address,bytes)._to (contracts/OmnichainFungibleToken.sol#56) is not in mixedCase
Parameter OmnichainFungibleToken.sendTokens(uint16,bytes,uint256,address,bytes)._qty (contracts/OmnichainFungibleToken.sol#57) is not in mixedCase
Parameter OmnichainFungibleToken.lzReceive(uint16,bytes,uint64,bytes)._srcChainId (contracts/OmnichainFungibleToken.sol#87) is not in mixedCase
Parameter OmnichainFungibleToken.lzReceive(uint16,bytes,uint64,bytes)._fromAddress (contracts/OmnichainFungibleToken.sol#88) is not in mixedCase
Parameter OmnichainFungibleToken.lzReceive(uint16,bytes,uint64,bytes)._payload (contracts/OmnichainFungibleToken.sol#90) is not in mixedCase
Parameter OmnichainFungibleToken.estimateSendTokensFee(uint16,bool,bytes)._dstChainId (contracts/OmnichainFungibleToken.sol#116) is not in mixedCase
Parameter OmnichainFungibleToken.estimateSendTokensFee(uint16,bool,bytes)._useZro (contracts/OmnichainFungibleToken.sol#116) is not in mixedCase
Parameter OmnichainFungibleToken.setConfig(uint16,uint16,uint256,bytes)._version (contracts/OmnichainFungibleToken.sol#123) is not in mixedCase
Parameter OmnichainFungibleToken.setConfig(uint16,uint16,uint256,bytes)._chainId (contracts/OmnichainFungibleToken.sol#124) is not in mixedCase
Parameter OmnichainFungibleToken.setConfig(uint16,uint16,uint256,bytes)._configType (contracts/OmnichainFungibleToken.sol#125) is not in mixedCase
Parameter OmnichainFungibleToken.setConfig(uint16,uint16,uint256,bytes)._config (contracts/OmnichainFungibleToken.sol#126) is not in mixedCase
Parameter OmnichainFungibleToken.forceResumeReceive(uint16,bytes)._srcChainId (contracts/OmnichainFungibleToken.sol#139) is not in mixedCase
Parameter OmnichainFungibleToken.forceResumeReceive(uint16,bytes)._srcAddress (contracts/OmnichainFungibleToken.sol#139) 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

renounceOwnership() should be declared external:
- OmnichainFungibleToken.renounceOwnership() (contracts/OmnichainFungibleToken.sol#143)
- 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)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#64-66)
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)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#123-125)
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)
setDestination(uint16,bytes) should be declared external:
- OmnichainFungibleToken.setDestination(uint16,bytes) (contracts/OmnichainFungibleToken.sol#46-48)
sendTokens(uint16,bytes,uint256,address,bytes) should be declared external:
- OmnichainFungibleToken.sendTokens(uint16,bytes,uint256,address,bytes) (contracts/OmnichainFungibleToken.sol#54-84)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:
No disclosed threats


Unable to find Youtube account


Unable to find audit link on the website


Token is not listed at Mobula.Finance

Additional information: link

No disclosed threats

Price for STG

News for STG