# Security

**Best Practices**

v Owner cannot stop or pause the smart contract.\
v Owner cannot lock or burn the user assets.\
v Owner cannot mint tokens after initial contract creation/deployment.\
v The smart contract utilises “SafeMath” function to avoid common smart contract

<mark style="color:green;">**`uint8 public constant MAX_TAX = 15; //MAX_TAX prevents malicious tax use`**</mark>

**vulnerabilities.**

SOCIAL @interfinetwork WEB interfi.network

<mark style="color:green;">`string private _name = "SectorProtocol";`</mark>\ <mark style="color:green;">`library SafeMath {`</mark>\ <mark style="color:green;">`function add(uint256 a, uint256 b) internal pure returns (uint256) {`</mark>

<mark style="color:green;">`uint256 c = a + b;`</mark>

<mark style="color:green;">`require(c >= a, "SafeMath: addition overflow");`</mark>\ <mark style="color:green;">`function sub(uint256 a, uint256 b) internal pure returns (uint256) {`</mark>

<mark style="color:green;">`return sub(a, b, "SafeMath: subtraction overflow"); uint256 c = a * b;`</mark>\ <mark style="color:green;">`require(c / a == b, "SafeMath: multiplication overflow"); return c;`</mark>

<mark style="color:green;">`function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero");`</mark>

<mark style="color:green;">`function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero");`</mark>

**Note ⚠**\
v Be aware that active smart contract owner privileges constitute an elevated impact to smart

contract safety and security.\ <mark style="color:green;">v Smart contract owner can set liquidity parameters in the smart contract.</mark>

<mark style="color:green;">//Impossible to release LP unless LP lock time is zero</mark>

<mark style="color:green;">function releaseLP() public onlyOwner {</mark>\ <mark style="color:green;">require(block.timestamp >= \_liquidityUnlockTime, "Not yet unlocked"); IPancakeERC20 liquidityToken = IPancakeERC20(\_pancakePairAddress); uint256 amount = liquidityToken.balanceOf(address(this));</mark>

<mark style="color:green;">liquidityToken.transfer(msg.sender, amount);</mark>

<mark style="color:green;">//Impossible to remove LP unless lock time is zero</mark>

<mark style="color:green;">function removeLP() public onlyOwner {</mark>\ <mark style="color:green;">require(block.timestamp >= \_liquidityUnlockTime, "Not yet unlocked"); \_liquidityUnlockTime = block.timestamp;</mark>\ <mark style="color:green;">IPancakeERC20 liquidityToken = IPancakeERC20(\_pancakePairAddress); uint256 amount = liquidityToken.balanceOf(address(this));</mark>

Sector protocol Full Audit ( <mark style="color:orange;">**Score 91/100**</mark> ) [click here ->](https://github.com/interfinetwork/smart-contract-audits/blob/audit-updates/SectorProtocol_AuditReport_InterFi.pdf)

Sector Protocol GitHub S/C link. [click here ->](https://github.com/GITSector)
