PEAK Tech was launched on 09/05/2019 by an international team based in Dubai, UAE. It aims to create a DeFi ecosystem and educate their community. The PEAK token is the utility token of this ecosystem which consists of 3 pillars:
PEAKDEFI fund: The PEAKDEFI fund is a decentralized and permissionless asset management fund, created to connect investors and asset managers for capital growth. This protocol was audited by Quantstamp and launches on November 2020.
PEAKDEFI wallet app: The PEAKDEFI wallet app launched on August 2020 for iOS and Android app.peakdefi.com. This wallet is an one-stop solution for taking control of your decentralized finances. Native, in-wallet App for DeFi solutions for everyone. Users can create and import an Ethereum wallet. There is also an integrated DEX (decentralized exchange). It is non-custodial - only users have access to their keys.
MarketPeak: MarketPeak is the education and software platform that focuses on the non-crypto advanced users to help them understand crypto and DeFi better.
SafeMath.mul(uint256,uint256) (#149-161) is never used and should be removed
SafeMath.sub(uint256,uint256) (#118-120) is never used and should be removed
AccessControl._setRoleAdmin(bytes32,bytes32) (#824-827) is never used and should be removed
Address.sendValue(address,uint256) (#521-527) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#572-574) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UintSet,uint256) (#440-442) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (#447-449) is never used and should be removed
ERC20._burn(address,uint256) (#1078-1086) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#227-230) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#582-585) is never used and should be removed
ERC20._initialize(string,string,uint8) (#885-893) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#191-197) is never used and should be removed
Context._msgData() (#626-629) is never used and should be removed
SafeMath.mod(uint256,uint256) (#211-213) is never used and should be removed
SafeMath.div(uint256,uint256) (#175-177) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (#454-456) is never used and should be removed
Address._functionCallWithValue(address,bytes,uint256,string) (#587-608) is never used and should be removed
AccessControl._setupRole(bytes32,address) (#815-817) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (#468-470) is never used and should be removed
Address.functionCall(address,bytes,string) (#557-559) is never used and should be removed
ERC20._mint(address,uint256) (#1057-1065) is never used and should be removed
EnumerableSet.add(EnumerableSet.UintSet,uint256) (#430-432) is never used and should be removed
Address.functionCall(address,bytes) (#547-549) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.6.2 (#1) 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
Redundant expression "this (#627)" inContext (#621-630)
Remove redundant statements if they congest code but offer no value.
Additional information: link
ERC20._initialize(string,string,uint8).name (#886) shadows:
- ERC20.name() (#898-900) (function)
ERC20._initialize(string,string,uint8).decimals (#888) shadows:
- ERC20.decimals() (#919-921) (function)
TokenProxy.constructor(address,address,bytes)._admin (#1435) shadows:
- TransparentUpgradeableProxy._admin() (#1399-1405) (function)
ERC20._initialize(string,string,uint8).symbol (#887) shadows:
- ERC20.symbol() (#906-908) (function)
TransparentUpgradeableProxy.constructor(address,address,bytes)._admin (#1306) shadows:
- TransparentUpgradeableProxy._admin() (#1399-1405) (function)
Rename the local variables that shadow another component.
Additional information: link
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes).newImplementation (#1389) lacks a zero-check on :
- (success) = newImplementation.delegatecall(data) (#1392)
UpgradeableProxy.constructor(address,bytes)._logic (#1222) lacks a zero-check on :
- (success) = _logic.delegatecall(_data) (#1227)
Check that the address is not zero.
Additional information: link
Modifier TransparentUpgradeableProxy.ifAdmin() (#1326-1332) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.
Additional information: link
TransparentUpgradeableProxy._admin() (#1399-1405) uses assembly
- INLINE ASM (#1402-1404)
TransparentUpgradeableProxy._setAdmin(address) (#1410-1417) uses assembly
- INLINE ASM (#1414-1416)
Address.isContract(address) (#494-503) uses assembly
- INLINE ASM (#501)
UpgradeableProxy._implementation() (#1247-1253) uses assembly
- INLINE ASM (#1250-1252)
UpgradeableProxy._setImplementation(address) (#1268-1277) uses assembly
- INLINE ASM (#1274-1276)
Address._functionCallWithValue(address,bytes,uint256,string) (#587-608) uses assembly
- INLINE ASM (#600-603)
Proxy._delegate(address) (#1142-1162) uses assembly
- INLINE ASM (#1144-1161)
Do not use evm assembly.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#521-527):
- (success) = recipient.call{value: amount}() (#525)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#587-608):
- (success,returndata) = target.call{value: weiValue}(data) (#591)
Low level call in TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (#1389-1394):
- (success) = newImplementation.delegatecall(data) (#1392)
Low level call in UpgradeableProxy.constructor(address,bytes) (#1222-1230):
- (success) = _logic.delegatecall(_data) (#1227)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#981-985)
decimals() should be declared external:
- ERC20.decimals() (#919-921)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#1018-1021)
symbol() should be declared external:
- ERC20.symbol() (#906-908)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#933-935)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#945-948)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#999-1002)
getRoleMemberCount(bytes32) should be declared external:
- AccessControl.getRoleMemberCount(bytes32) (#718-720)
name() should be declared external:
- ERC20.name() (#898-900)
grantRole(bytes32,address) should be declared external:
- AccessControl.grantRole(bytes32,address) (#758-762)
getRoleMember(bytes32,uint256) should be declared external:
- AccessControl.getRoleMember(bytes32,uint256) (#734-736)
revokeRole(bytes32,address) should be declared external:
- AccessControl.revokeRole(bytes32,address) (#773-777)
totalSupply() should be declared external:
- ERC20.totalSupply() (#926-928)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#964-967)
renounceRole(bytes32,address) should be declared external:
- AccessControl.renounceRole(bytes32,address) (#793-797)
getRoleAdmin(bytes32) should be declared external:
- AccessControl.getRoleAdmin(bytes32) (#744-746)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#953-955)
Use the external attribute for functions never called from the contract.
Additional information: link
Twitter account link seems to be invalid
Unable to find Youtube account