Tranchess is a tokenized asset management and derivatives trading protocol. Inspired by tranche funds that cater to investors with different risk appetite, Tranchess aims to provide a different risk/return matrix out of a single main fund that tracks a specific underlying asset (e.g.BTC). The main tranche can be split into two sub-tranches with their own distinct risk return profile.
Tranchess Protocol is not a standalone asset management ecosystem, but encompasses all features one can find in the DeFi space. It is a one-stop centre for those that wants to enjoy popular DeFi features- such as single-asset yield farming, borrowing & lending, trading, etc..
Different versions of Solidity are used:
- Version used: ['>=0.6.0<0.8.0', '>=0.6.10<0.8.0']
- >=0.6.0<0.8.0 (@openzeppelin/contracts/GSN/Context.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/math/SafeMath.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)
- >=0.6.10<0.8.0 (contracts/governance/Chess.sol#2)
Use one Solidity version.
Additional information: link
SafeMath.mul(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#77-89) is never used and should be removed
SafeMath.sub(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#46-48) is never used and should be removed
ERC20._burn(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#249-257) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#155-158) is never used and should be removed
SafeMath.div(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#119-125) 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
Context._msgData() (@openzeppelin/contracts/GSN/Context.sol#20-23) is never used and should be removed
SafeMath.mod(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#139-141) is never used and should be removed
SafeMath.div(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#103-105) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.6.10<0.8.0 (contracts/governance/Chess.sol#2) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/math/SafeMath.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/GSN/Context.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.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
Redundant expression "this (@openzeppelin/contracts/GSN/Context.sol#21)" inContext (@openzeppelin/contracts/GSN/Context.sol#15-24)
Remove redundant statements if they congest code but offer no value.
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#152-156)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#89-91)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#189-192)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#72-74)
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)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#170-173)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#64-66)
totalSupply() should be declared external:
- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#96-98)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#134-137)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#123-125)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find Youtube account