TRAVA is the world’s first decentralized marketplace for cross-chain lending. While existing approaches provide only one or a few lending pools with their own parameters such as borrow/supply interest rate, liquidation threshold, Loan-to-Value ratio, or a limited list of exchangeable cryptocurrencies, TRAVA offers a flexible mechanism in which users can create and manage their own lending pools to start a lending business. TRAVA also offers the credit score function based on financial data on-chain analysis as a useful tool that reduces risk and increases profits for all users.
Contract ownership is not renounced (belongs to a wallet)
TravaToken._approve(address,address,uint256).owner (#587) shadows:
- Ownable.owner() (#293-295) (function)
TravaToken.allowance(address,address).owner (#419) shadows:
- Ownable.owner() (#293-295) (function)
Rename the local variables that shadow another component.
Additional information: link
TravaToken.isContract(address) (#634-641) uses assembly
- INLINE ASM (#639)
Do not use evm assembly.
Additional information: link
Redundant expression "this (#109)" inContext (#99-113)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SafeMath.mul(uint256,uint256) (#183-195) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#258-261) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#223-230) is never used and should be removed
Context._msgData() (#108-112) is never used and should be removed
SafeMath.mod(uint256,uint256) (#243-245) is never used and should be removed
SafeMath.div(uint256,uint256) (#208-210) is never used and should be removed
TravaToken._burnFrom(address,uint256) (#601-604) is never used and should be removed
Remove unused functions.
Additional information: link
Parameter TravaToken.burn(address,uint256)._to (#510) is not in mixedCase
Parameter TravaToken.transferAndCall(address,uint256,bytes)._data (#613) is not in mixedCase
Parameter TravaToken.transferAndCall(address,uint256,bytes)._to (#613) is not in mixedCase
Parameter TravaToken.burn(address,uint256)._amount (#510) is not in mixedCase
Parameter TravaToken.transferAndCall(address,uint256,bytes)._value (#613) is not in mixedCase
Parameter TravaToken.contractFallback(address,uint256,bytes)._value (#627) is not in mixedCase
Parameter TravaToken.contractFallback(address,uint256,bytes)._data (#627) is not in mixedCase
Parameter TravaToken.contractFallback(address,uint256,bytes)._to (#627) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
mint(uint256) should be declared external:
- TravaToken.mint(uint256) (#497-500)
burn(address,uint256) should be declared external:
- TravaToken.burn(address,uint256) (#510-513)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#312-315)
decreaseAllowance(address,uint256) should be declared external:
- TravaToken.decreaseAllowance(address,uint256) (#484-487)
transferAndCall(address,uint256,bytes) should be declared external:
- TravaToken.transferAndCall(address,uint256,bytes) (#613-623)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#321-323)
increaseAllowance(address,uint256) should be declared external:
- TravaToken.increaseAllowance(address,uint256) (#465-468)
Use the external attribute for functions never called from the contract.
Additional information: link