Cardence is a launchpad for new projects on Cardano platform creating a trustless fund raising ecosystem for carefully vetted Cardano projects.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ticker ($CRDN) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
Token.balanceOf(address)._owner (#191) shadows:
- Ownable._owner (#87) (state variable)
Token.allowance(address,address)._owner (#195) shadows:
- Ownable._owner (#87) (state variable)
Rename the local variables that shadow another component.
Additional information: link
Ownable.unlock() (#151-156) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#153)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#301-310) uses assembly
- INLINE ASM (#308)
Address._functionCallWithValue(address,bytes,uint256,string) (#394-415) uses assembly
- INLINE ASM (#407-410)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#394-415) is never used and should be removed
Address.functionCall(address,bytes) (#354-356) is never used and should be removed
Address.functionCall(address,bytes,string) (#364-366) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#379-381) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#389-392) is never used and should be removed
Address.isContract(address) (#301-310) is never used and should be removed
Address.sendValue(address,uint256) (#328-334) is never used and should be removed
SafeMath.div(uint256,uint256) (#518-520) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#534-540) is never used and should be removed
SafeMath.mod(uint256,uint256) (#554-556) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#570-573) is never used and should be removed
SafeMath.mul(uint256,uint256) (#492-504) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#328-334):
- (success) = recipient.call{value: amount}() (#332)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#394-415):
- (success,returndata) = target.call{value: weiValue}(data) (#398)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter Token.balanceOf(address)._owner (#191) is not in mixedCase
Parameter Token.allowance(address,address)._owner (#195) is not in mixedCase
Parameter Token.allowance(address,address)._spender (#195) is not in mixedCase
Parameter Token.transfer(address,uint256)._to (#199) is not in mixedCase
Parameter Token.transfer(address,uint256)._amount (#199) is not in mixedCase
Parameter Token.transferFrom(address,address,uint256)._from (#209) is not in mixedCase
Parameter Token.transferFrom(address,address,uint256)._to (#209) is not in mixedCase
Parameter Token.transferFrom(address,address,uint256)._amount (#209) is not in mixedCase
Parameter Token.approve(address,uint256)._spender (#221) is not in mixedCase
Parameter Token.approve(address,uint256)._amount (#221) is not in mixedCase
Function Cardence._mint(address,uint256) (#248-253) is not in mixedCase
Parameter Cardence._mint(address,uint256)._user (#248) is not in mixedCase
Parameter Cardence._mint(address,uint256)._amount (#248) is not in mixedCase
Function Cardence.FreezeAcc(address) (#256-260) is not in mixedCase
Function Cardence.UnfreezeAcc(address) (#262-266) is not in mixedCase
Parameter Cardence.burn(uint256)._value (#268) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Cardence.constructor() (#239-246) uses literals with too many digits:
- totalSupply = 50000000e18 (#244)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#123-126)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#132-136)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#138-140)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#143-148)
unlock() should be declared external:
- Ownable.unlock() (#151-156)
balanceOf(address) should be declared external:
- Token.balanceOf(address) (#191-193)
allowance(address,address) should be declared external:
- Token.allowance(address,address) (#195-197)
transfer(address,uint256) should be declared external:
- Token.transfer(address,uint256) (#199-207)
transferFrom(address,address,uint256) should be declared external:
- Token.transferFrom(address,address,uint256) (#209-219)
approve(address,uint256) should be declared external:
- Token.approve(address,uint256) (#221-228)
FreezeAcc(address) should be declared external:
- Cardence.FreezeAcc(address) (#256-260)
UnfreezeAcc(address) should be declared external:
- Cardence.UnfreezeAcc(address) (#262-266)
burn(uint256) should be declared external:
- Cardence.burn(uint256) (#268-275)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find whitepaper link on the website
Unable to find code repository for the project
Unable to find Discord account
Unable to find Youtube account