Skip to content

Latest commit

Β 

History

History
2253 lines (1419 loc) Β· 82.4 KB

Security-Audit-Report-31052023.md

File metadata and controls

2253 lines (1419 loc) Β· 82.4 KB

Security Audit Report

  • Date: 31-05-2023
  • Test tools
    • Slither v0.9.0
    • Solc 0.8.19+commit.7dd6d404.Darwin.appleclang

Summary

Contracts

SafeMath:
+------+----+
| Name | ID |
+------+----+
+------+----+

IBarn:
+------------------------------+------------+
|             Name             |     ID     |
+------------------------------+------------+
|      balanceOf(address)      | 0x70a08231 |
| balanceAtTs(address,uint256) | 0x417edd4d |
+------------------------------+------------+

IBurnableToken:
+---------------------------------------+------------+
|                  Name                 |     ID     |
+---------------------------------------+------------+
|             totalSupply()             | 0x18160ddd |
|               decimals()              | 0x313ce567 |
|                symbol()               | 0x95d89b41 |
|                 name()                | 0x06fdde03 |
|               getOwner()              | 0x893d20e8 |
|           balanceOf(address)          | 0x70a08231 |
|       transfer(address,uint256)       | 0xa9059cbb |
|       allowance(address,address)      | 0xdd62ed3e |
|        approve(address,uint256)       | 0x095ea7b3 |
| transferFrom(address,address,uint256) | 0x23b872dd |
|         mint(address,uint256)         | 0x40c10f19 |
|             burn(uint256)             | 0x42966c68 |
|               mintable()              | 0x4bf365df |
+---------------------------------------+------------+

ISwapContract:
+------------------------------------------------------------------------------+------------+
|                                     Name                                     |     ID     |
+------------------------------------------------------------------------------+------------+
|                                 BTCT_ADDR()                                  | 0x0f909486 |
|                                  lpToken()                                   | 0x5fcbd285 |
|    singleTransferERC20(address,address,uint256,uint256,uint256,bytes32[])    | 0x0d63aca7 |
| multiTransferERC20TightlyPacked(address,bytes32[],uint256,uint256,bytes32[]) | 0xad289e76 |
|      collectSwapFeesForBTC(uint256,uint256,uint256,address[],uint256[])      | 0x2adf9f87 |
|                 recordIncomingFloat(address,bytes32,bytes32)                 | 0xcf10b16b |
|            recordOutcomingFloat(address,bytes32,uint256,bytes32)             | 0x2586c562 |
|                   recordUTXOSweepMinerFee(uint256,bytes32)                   | 0xc810a539 |
|                 churn(address,address[],bool[],uint8,uint8)                  | 0x6845a025 |
|            updateParams(address,address,uint256,uint256,uint256)             | 0xe880afd4 |
|                              isTxUsed(bytes32)                               | 0xe6ca2084 |
|                             getCurrentPriceLP()                              | 0x45137e27 |
|                       getFloatReserve(address,address)                       | 0xec482729 |
|                               getActiveNodes()                               | 0x6b51e919 |
|                             isNodeStake(address)                             | 0xa742329d |
+------------------------------------------------------------------------------+------------+

sbBTCPool:
+---------------------------------+------------+
|               Name              |     ID     |
+---------------------------------+------------+
|             owner()             | 0x8da5cb5b |
|       renounceOwnership()       | 0x715018a6 |
|    transferOwnership(address)   | 0xf2fde38b |
| setBarnAndSwap(address,address) | 0x1ed64040 |
|        updateAll(uint256)       | 0xa616f345 |
|    resetUnstakedNode(address)   | 0x58411c09 |
|             claim()             | 0x4e71d92d |
|            ackFunds()           | 0xacfd9325 |
|       emergencyWithdraw()       | 0xdb2e21bc |
|         balanceBefore()         | 0x94b5798a |
|       currentMultiplier()       | 0x6fbaaa1e |
|        totalNodeStaked()        | 0x8ca0a7e5 |
|     userMultiplier(address)     | 0xb1a03b6b |
|          owed(address)          | 0xdf18e047 |
|              barn()             | 0x194f480e |
|          rewardToken()          | 0xf7c618c1 |
|          swapContract()         | 0x8ea83031 |
+---------------------------------+------------+


Params:
+--------------------------------------+------------+
|                 Name                 |     ID     |
+--------------------------------------+------------+
|      minimumSwapAmountForWBTC()      | 0x1411c5b7 |
|           expirationTime()           | 0xda284dcc |
|          paraswapAddress()           | 0xf10d7c35 |
|          nodeRewardsRatio()          | 0x0b68134d |
|           depositFeesBPS()           | 0x42419255 |
|          withdrawalFeeBPS()          | 0xb6268e5d |
|             loopCount()              | 0xe91675b8 |
|               owner()                | 0x8da5cb5b |
|         renounceOwnership()          | 0x715018a6 |
|      transferOwnership(address)      | 0xf2fde38b |
|            constructor()             | 0x90fa17bb |
| setMinimumSwapAmountForWBTC(uint256) | 0x5f79ec58 |
|      setExpirationTime(uint256)      | 0xc0cc365d |
|     setParaswapAddress(address)      | 0xfb278493 |
|      setNodeRewardsRatio(uint8)      | 0xa0011cd4 |
|      setWithdrawalFeeBPS(uint8)      | 0xdd62a515 |
|       setDepositFeesBPS(uint8)       | 0x6ce81f80 |
|         setLoopCount(uint8)          | 0x56151c06 |
|      minimumSwapAmountForWBTC()      | 0x1411c5b7 |
|           expirationTime()           | 0xda284dcc |
|          paraswapAddress()           | 0xf10d7c35 |
|          nodeRewardsRatio()          | 0x0b68134d |
|           depositFeesBPS()           | 0x42419255 |
|          withdrawalFeeBPS()          | 0xb6268e5d |
|             loopCount()              | 0xe91675b8 |
+--------------------------------------+------------+


SafeMath:
+------+----+
| Name | ID |
+------+----+
+------+----+

SwapContract:
+------------------------------------------------------------------------------+------------+
|                                     Name                                     |     ID     |
+------------------------------------------------------------------------------+------------+
|                                   owner()                                    | 0x8da5cb5b |
|                             renounceOwnership()                              | 0x715018a6 |
|                          transferOwnership(address)                          | 0xf2fde38b |
|                                 BTCT_ADDR()                                  | 0x0f909486 |
|                                  lpToken()                                   | 0x5fcbd285 |
|     constructor(address,address,address,address,address,uint256,uint256)     | 0x94a103a9 |
|    singleTransferERC20(address,address,uint256,uint256,uint256,bytes32[])    | 0x0d63aca7 |
| multiTransferERC20TightlyPacked(address,bytes32[],uint256,uint256,bytes32[]) | 0xad289e76 |
|      collectSwapFeesForBTC(uint256,uint256,uint256,address[],uint256[])      | 0x2adf9f87 |
|                 recordIncomingFloat(address,bytes32,bytes32)                 | 0xcf10b16b |
|            recordOutcomingFloat(address,bytes32,uint256,bytes32)             | 0x2586c562 |
|                                  fallback()                                  | 0x552079dc |
|                   recordUTXOSweepMinerFee(uint256,bytes32)                   | 0xc810a539 |
|                 churn(address,address[],bool[],uint8,uint8)                  | 0x6845a025 |
|            updateParams(address,address,uint256,uint256,uint256)             | 0xe880afd4 |
|                              isTxUsed(bytes32)                               | 0xe6ca2084 |
|                             getCurrentPriceLP()                              | 0x45137e27 |
|                       getFloatReserve(address,address)                       | 0xec482729 |
|                               getActiveNodes()                               | 0x6b51e919 |
|                             isNodeStake(address)                             | 0xa742329d |
|                                  lpToken()                                   | 0x5fcbd285 |
|                                     sw()                                     | 0x00e5cee4 |
|                              whitelist(address)                              | 0x9b19251a |
|                                 BTCT_ADDR()                                  | 0x0f909486 |
|                               buybackAddress()                               | 0xcc2fbd66 |
|                                 sbBTCPool()                                  | 0x0085aea1 |
|                              withdrawalFeeBPS()                              | 0xb6268e5d |
|                              nodeRewardsRatio()                              | 0x0b68134d |
|                            buybackRewardsRatio()                             | 0x0b513f1d |
|                              activeNodeCount()                               | 0x75340815 |
|                               churnedInCount()                               | 0x0089356f |
|                                tssThreshold()                                | 0x12d1441e |
+------------------------------------------------------------------------------+------------+

IBurnableToken:
+---------------------------------------+------------+
|                  Name                 |     ID     |
+---------------------------------------+------------+
|             totalSupply()             | 0x18160ddd |
|               decimals()              | 0x313ce567 |
|                symbol()               | 0x95d89b41 |
|                 name()                | 0x06fdde03 |
|               getOwner()              | 0x893d20e8 |
|           balanceOf(address)          | 0x70a08231 |
|       transfer(address,uint256)       | 0xa9059cbb |
|       allowance(address,address)      | 0xdd62ed3e |
|        approve(address,uint256)       | 0x095ea7b3 |
| transferFrom(address,address,uint256) | 0x23b872dd |
|         mint(address,uint256)         | 0x40c10f19 |
|             burn(uint256)             | 0x42966c68 |
|               mintable()              | 0x4bf365df |
+---------------------------------------+------------+

ISwapRewards:
+-----------------------------------------------+------------+
|                      Name                     |     ID     |
+-----------------------------------------------+------------+
|            setSWINGBYPrice(uint256)           | 0xfabe44a8 |
|      pullRewards(address,address,uint256)     | 0xff320aae |
| pullRewardsMulti(address,address[],uint256[]) | 0x49e031a5 |
+-----------------------------------------------+------------+

Address:
+------+----+
| Name | ID |
+------+----+
+------+----+

SafeERC20:
+------+----+
| Name | ID |
+------+----+
+------+----+


SafeMath:
+------+----+
| Name | ID |
+------+----+
+------+----+

SwapRewards:
+-----------------------------------------------+------------+
|                      Name                     |     ID     |
+-----------------------------------------------+------------+
|                    owner()                    | 0x8da5cb5b |
|              renounceOwnership()              | 0x715018a6 |
|           transferOwnership(address)          | 0xf2fde38b |
|      constructor(address,address,uint256)     | 0x3bdb4e02 |
|            setSWINGBYPrice(uint256)           | 0xfabe44a8 |
|        setSwap(address,uint256,uint256)       | 0xa9d6e083 |
|      pullRewards(address,address,uint256)     | 0xff320aae |
| pullRewardsMulti(address,address[],uint256[]) | 0x49e031a5 |
|                 rewardToken()                 | 0xf7c618c1 |
|                 swapContract()                | 0x8ea83031 |
|                  rebateRate()                 | 0xb681a1e7 |
|                thresholdRatio()               | 0xc0324da1 |
|                 pricePerBTC()                 | 0x4017fe77 |
+-----------------------------------------------+------------+

IBurnableToken:
+---------------------------------------+------------+
|                  Name                 |     ID     |
+---------------------------------------+------------+
|             totalSupply()             | 0x18160ddd |
|               decimals()              | 0x313ce567 |
|                symbol()               | 0x95d89b41 |
|                 name()                | 0x06fdde03 |
|               getOwner()              | 0x893d20e8 |
|           balanceOf(address)          | 0x70a08231 |
|       transfer(address,uint256)       | 0xa9059cbb |
|       allowance(address,address)      | 0xdd62ed3e |
|        approve(address,uint256)       | 0x095ea7b3 |
| transferFrom(address,address,uint256) | 0x23b872dd |
|         mint(address,uint256)         | 0x40c10f19 |
|             burn(uint256)             | 0x42966c68 |
|               mintable()              | 0x4bf365df |
+---------------------------------------+------------+

ISwapContract:
+------------------------------------------------------------------------------+------------+
|                                     Name                                     |     ID     |
+------------------------------------------------------------------------------+------------+
|                                 BTCT_ADDR()                                  | 0x0f909486 |
|                                  lpToken()                                   | 0x5fcbd285 |
|    singleTransferERC20(address,address,uint256,uint256,uint256,bytes32[])    | 0x0d63aca7 |
| multiTransferERC20TightlyPacked(address,bytes32[],uint256,uint256,bytes32[]) | 0xad289e76 |
|      collectSwapFeesForBTC(uint256,uint256,uint256,address[],uint256[])      | 0x2adf9f87 |
|                 recordIncomingFloat(address,bytes32,bytes32)                 | 0xcf10b16b |
|            recordOutcomingFloat(address,bytes32,uint256,bytes32)             | 0x2586c562 |
|                   recordUTXOSweepMinerFee(uint256,bytes32)                   | 0xc810a539 |
|                 churn(address,address[],bool[],uint8,uint8)                  | 0x6845a025 |
|            updateParams(address,address,uint256,uint256,uint256)             | 0xe880afd4 |
|                              isTxUsed(bytes32)                               | 0xe6ca2084 |
|                             getCurrentPriceLP()                              | 0x45137e27 |
|                       getFloatReserve(address,address)                       | 0xec482729 |
|                               getActiveNodes()                               | 0x6b51e919 |
|                             isNodeStake(address)                             | 0xa742329d |
+------------------------------------------------------------------------------+------------+


SafeMath:
+------+----+
| Name | ID |
+------+----+
+------+----+

BurnableToken:
+---------------------------------------+------------+
|                  Name                 |     ID     |
+---------------------------------------+------------+
|                owner()                | 0x8da5cb5b |
|          renounceOwnership()          | 0x715018a6 |
|       transferOwnership(address)      | 0xf2fde38b |
|               mintable()              | 0x4bf365df |
|               decimals()              | 0x313ce567 |
|                symbol()               | 0x95d89b41 |
|                 name()                | 0x06fdde03 |
|               getOwner()              | 0x893d20e8 |
|             totalSupply()             | 0x18160ddd |
|           balanceOf(address)          | 0x70a08231 |
|       transfer(address,uint256)       | 0xa9059cbb |
|       allowance(address,address)      | 0xdd62ed3e |
|        approve(address,uint256)       | 0x095ea7b3 |
| transferFrom(address,address,uint256) | 0x23b872dd |
|   increaseAllowance(address,uint256)  | 0x39509351 |
|   decreaseAllowance(address,uint256)  | 0xa457c2d7 |
|         mint(address,uint256)         | 0x40c10f19 |
|             burn(uint256)             | 0x42966c68 |
+---------------------------------------+------------+


SafeMath:
+------+----+
| Name | ID |
+------+----+
+------+----+

LPToken:
+---------------------------------------+------------+
|                  Name                 |     ID     |
+---------------------------------------+------------+
|               mintable()              | 0x4bf365df |
|               decimals()              | 0x313ce567 |
|                symbol()               | 0x95d89b41 |
|                 name()                | 0x06fdde03 |
|               getOwner()              | 0x893d20e8 |
|             totalSupply()             | 0x18160ddd |
|           balanceOf(address)          | 0x70a08231 |
|       transfer(address,uint256)       | 0xa9059cbb |
|       allowance(address,address)      | 0xdd62ed3e |
|        approve(address,uint256)       | 0x095ea7b3 |
| transferFrom(address,address,uint256) | 0x23b872dd |
|   increaseAllowance(address,uint256)  | 0x39509351 |
|   decreaseAllowance(address,uint256)  | 0xa457c2d7 |
|         mint(address,uint256)         | 0x40c10f19 |
|             burn(uint256)             | 0x42966c68 |
|                owner()                | 0x8da5cb5b |
|          renounceOwnership()          | 0x715018a6 |
|       transferOwnership(address)      | 0xf2fde38b |
|           constructor(uint8)          | 0x9f217ad9 |
|            setOld(address)            | 0x242d81f0 |
|       convertTo(address,uint256)      | 0x9bfa5181 |
|       mintFrom(address,uint256)       | 0x1cc74859 |
|                 old()                 | 0xb83f8663 |
+---------------------------------------+------------+


SafeMath:
+------+----+
| Name | ID |
+------+----+
+------+----+

SwingbyToken:
+---------------------------------------+------------+
|                  Name                 |     ID     |
+---------------------------------------+------------+
|               mintable()              | 0x4bf365df |
|               decimals()              | 0x313ce567 |
|                symbol()               | 0x95d89b41 |
|                 name()                | 0x06fdde03 |
|               getOwner()              | 0x893d20e8 |
|             totalSupply()             | 0x18160ddd |
|           balanceOf(address)          | 0x70a08231 |
|       transfer(address,uint256)       | 0xa9059cbb |
|       allowance(address,address)      | 0xdd62ed3e |
|        approve(address,uint256)       | 0x095ea7b3 |
| transferFrom(address,address,uint256) | 0x23b872dd |
|   increaseAllowance(address,uint256)  | 0x39509351 |
|   decreaseAllowance(address,uint256)  | 0xa457c2d7 |
|         mint(address,uint256)         | 0x40c10f19 |
|             burn(uint256)             | 0x42966c68 |
|                owner()                | 0x8da5cb5b |
|          renounceOwnership()          | 0x715018a6 |
|       transferOwnership(address)      | 0xf2fde38b |
|             constructor()             | 0x90fa17bb |
+---------------------------------------+------------+

unchecked-transfer

Impact: High Confidence: Medium

contracts/sbBTCPool.sol#L73-L95

contracts/sbBTCPool.sol#L120-L124

contracts/SwapRewards.sol#L86-L116

contracts/SwapRewards.sol#L59-L83

incorrect-equality

Impact: Medium Confidence: High

contracts/sbBTCPool.sol#L50-L65

contracts/sbBTCPool.sol#L100-L118

contracts/sbBTCPool.sol#L100-L118

reentrancy-no-eth

Impact: Medium Confidence: Medium

contracts/sbBTCPool.sol#L73-L95

contracts/SwapContract.sol#L439-L497

contracts/SwapContract.sol#L404-L432

calls-loop

Impact: Low Confidence: Medium

contracts/sbBTCPool.sol#L137-L143

contracts/interfaces/lib/Address.sol#L122-L133

contracts/SwapRewards.sol#L86-L116

reentrancy-benign

Impact: Low Confidence: Medium

contracts/sbBTCPool.sol#L120-L124

contracts/sbBTCPool.sol#L67-L70

contracts/sbBTCPool.sol#L28-L35

contracts/sbBTCPool.sol#L73-L95

contracts/SwapContract.sol#L190-L207

contracts/SwapContract.sol#L120-L146

contracts/SwapContract.sol#L120-L146

contracts/SwapContract.sol#L154-L184

reentrancy-events

Impact: Low Confidence: Medium

contracts/sbBTCPool.sol#L73-L95

contracts/SwapContract.sol#L120-L146

contracts/SwapContract.sol#L439-L497

contracts/SwapContract.sol#L190-L207

contracts/SwapContract.sol#L554-L586

contracts/SwapContract.sol#L404-L432

contracts/SwapContract.sol#L120-L146

contracts/SwapContract.sol#L190-L207

contracts/SwapRewards.sol#L59-L83

contracts/SwapRewards.sol#L86-L116

timestamp

Impact: Low Confidence: Medium

contracts/sbBTCPool.sol#L100-L118

contracts/sbBTCPool.sol#L73-L95

contracts/sbBTCPool.sol#L50-L65

dead-code

Impact: Informational Confidence: Medium

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L64-L69

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L76-L81

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L168-L177

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L22-L28

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L217-L226

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L191-L200

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L151-L153

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L47-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L35-L40

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L64-L69

contracts/interfaces/lib/Address.sol#L54-L59

contracts/interfaces/lib/Address.sol#L108-L114

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L76-L81

contracts/interfaces/lib/Address.sol#L178-L187

contracts/interfaces/lib/Address.sol#L168-L170

contracts/interfaces/lib/SafeERC20.sol#L59-L66

contracts/interfaces/lib/SafeERC20.sol#L44-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L22-L28

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L217-L226

contracts/interfaces/lib/SafeERC20.sol#L28-L35

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L191-L200

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

contracts/interfaces/lib/Address.sol#L141-L143

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L151-L153

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L47-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L35-L40

contracts/interfaces/lib/Address.sol#L151-L160

contracts/interfaces/lib/Address.sol#L79-L81

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L107-L109

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L64-L69

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L76-L81

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L168-L177

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L22-L28

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L217-L226

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L191-L200

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L151-L153

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L47-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L35-L40

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L121-L123

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L64-L69

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L76-L81

contracts/BurnableToken.sol#L342-L352

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L22-L28

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L217-L226

contracts/BurnableToken.sol#L23-L35

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L191-L200

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L151-L153

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L135-L137

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L47-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L35-L40

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L121-L123

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L64-L69

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L76-L81

contracts/BurnableToken.sol#L342-L352

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L22-L28

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L217-L226

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L191-L200

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L151-L153

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L135-L137

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L47-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L35-L40

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L121-L123

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L64-L69

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L76-L81

contracts/BurnableToken.sol#L342-L352

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L22-L28

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L217-L226

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L191-L200

node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L151-L153

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L135-L137

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L47-L57

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L35-L40

solc-version

Impact: Informational Confidence: High

  • ID-112 Pragma version^0.8.0 allows old versions

contracts/interfaces/IERC20.sol#L2

  • ID-113 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-114 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBarn.sol#L2

  • ID-115 Pragma version^0.8.0 allows old versions

contracts/interfaces/ISwapContract.sol#L2

  • ID-116 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L4

  • ID-117 Pragma version^0.8.0 allows old versions

contracts/sbBTCPool.sol#L2

  • ID-118 solc-0.8.19 is not recommended for deployment

  • ID-119 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBurnableToken.sol#L2

  • ID-120 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

  • ID-121 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-122 Pragma version^0.8.0 allows old versions

contracts/Params.sol#L2

  • ID-123 solc-0.8.19 is not recommended for deployment

  • ID-124 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

  • ID-125 Pragma version^0.8.0 allows old versions

contracts/interfaces/IParams.sol#L2

  • ID-126 Pragma version^0.8.0 allows old versions

contracts/interfaces/IERC20.sol#L2

  • ID-127 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-128 Pragma version^0.8.0 allows old versions

contracts/SwapContract.sol#L2

  • ID-129 Pragma version^0.8.0 allows old versions

contracts/interfaces/ISwapContract.sol#L2

  • ID-130 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L4

  • ID-131 Pragma version^0.8.0 allows old versions

contracts/interfaces/lib/SafeERC20.sol#L3

  • ID-132 Pragma version^0.8.0 allows old versions

contracts/interfaces/lib/Address.sol#L3

  • ID-133 solc-0.8.19 is not recommended for deployment

  • ID-134 Pragma version^0.8.0 allows old versions

contracts/interfaces/ISwapRewards.sol#L2

  • ID-135 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBurnableToken.sol#L2

  • ID-136 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

  • ID-137 Pragma version^0.8.0 allows old versions

contracts/interfaces/IERC20.sol#L2

  • ID-138 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-139 Pragma version^0.8.0 allows old versions

contracts/interfaces/ISwapContract.sol#L2

  • ID-140 Pragma version^0.8.0 allows old versions

contracts/SwapRewards.sol#L2

  • ID-141 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L4

  • ID-142 solc-0.8.19 is not recommended for deployment

  • ID-143 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBurnableToken.sol#L2

  • ID-144 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

  • ID-145 Pragma version^0.8.0 allows old versions

contracts/BurnableToken.sol#L2

  • ID-146 Pragma version^0.8.0 allows old versions

contracts/interfaces/IERC20.sol#L2

  • ID-147 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-148 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L4

  • ID-149 solc-0.8.19 is not recommended for deployment

  • ID-150 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBurnableToken.sol#L2

  • ID-151 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

  • ID-152 Pragma version^0.8.0 allows old versions

contracts/BurnableToken.sol#L2

  • ID-153 Pragma version^0.8.0 allows old versions

contracts/interfaces/IERC20.sol#L2

  • ID-154 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-155 Pragma version^0.8.0 allows old versions

contracts/LPToken.sol#L2

  • ID-156 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L4

  • ID-157 solc-0.8.19 is not recommended for deployment

  • ID-158 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBurnableToken.sol#L2

  • ID-159 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

  • ID-160 Pragma version^0.8.0 allows old versions

contracts/BurnableToken.sol#L2

  • ID-161 Pragma version^0.8.0 allows old versions

contracts/interfaces/IERC20.sol#L2

  • ID-162 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/Context.sol#L4

  • ID-163 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/utils/math/SafeMath.sol#L4

  • ID-164 Pragma version^0.8.0 allows old versions

contracts/SwingbyToken.sol#L2

  • ID-165 solc-0.8.19 is not recommended for deployment

  • ID-166 Pragma version^0.8.0 allows old versions

contracts/interfaces/IBurnableToken.sol#L2

  • ID-167 Pragma version^0.8.0 allows old versions

node_modules/@openzeppelin/contracts/access/Ownable.sol#L4

naming-convention

Impact: Informational Confidence: High

contracts/sbBTCPool.sol#L38

contracts/interfaces/ISwapContract.sol#L8

contracts/sbBTCPool.sol#L28

contracts/sbBTCPool.sol#L28

contracts/sbBTCPool.sol#L67

  • ID-173 Contract sbBTCPool is not in CapWords

contracts/sbBTCPool.sol#L9-L144

contracts/sbBTCPool.sol#L50

contracts/sbBTCPool.sol#L12

contracts/Params.sol#L33

contracts/Params.sol#L69

contracts/Params.sol#L49

contracts/Params.sol#L61

contracts/Params.sol#L53

contracts/Params.sol#L77

contracts/Params.sol#L44

contracts/SwapContract.sol#L283

contracts/SwapContract.sol#L158

contracts/SwapContract.sol#L284

contracts/SwapContract.sol#L191

contracts/SwapContract.sol#L155

contracts/SwapContract.sol#L285

contracts/SwapContract.sol#L124

contracts/SwapContract.sol#L332

contracts/SwapContract.sol#L373

contracts/SwapContract.sol#L263

contracts/SwapContract.sol#L330

contracts/SwapContract.sol#L237

contracts/SwapContract.sol#L126

contracts/SwapContract.sol#L235

contracts/SwapContract.sol#L21

contracts/SwapContract.sol#L125

contracts/SwapContract.sol#L264

contracts/SwapContract.sol#L393

contracts/SwapContract.sol#L234

contracts/SwapContract.sol#L195

contracts/SwapContract.sol#L121

contracts/SwapContract.sol#L374

contracts/SwapContract.sol#L194

contracts/SwapContract.sol#L282

contracts/SwapContract.sol#L159

contracts/SwapContract.sol#L193

contracts/interfaces/ISwapContract.sol#L8

contracts/SwapContract.sol#L346

contracts/SwapContract.sol#L286

contracts/SwapContract.sol#L157

contracts/SwapContract.sol#L334

contracts/SwapContract.sol#L236

contracts/SwapContract.sol#L123

contracts/SwapContract.sol#L331

contracts/SwapContract.sol#L219

contracts/SwapContract.sol#L156

contracts/SwapContract.sol#L217

contracts/SwapContract.sol#L122

contracts/SwapContract.sol#L218

contracts/SwapContract.sol#L333

contracts/SwapRewards.sol#L61

contracts/SwapRewards.sol#L88

contracts/SwapRewards.sol#L40

contracts/SwapRewards.sol#L89

contracts/SwapRewards.sol#L87

contracts/interfaces/ISwapContract.sol#L8

contracts/SwapRewards.sol#L62

contracts/SwapRewards.sol#L42

contracts/SwapRewards.sol#L34

contracts/SwapRewards.sol#L41

contracts/SwapRewards.sol#L60

contracts/LPToken.sol#L13

tautology

Impact: Medium Confidence: High

contracts/Params.sol#L53-L59

contracts/Params.sol#L44-L47

contracts/Params.sol#L69-L75

contracts/Params.sol#L61-L67

contracts/SwapRewards.sol#L39-L56

missing-zero-check

Impact: Low Confidence: Medium

contracts/Params.sol#L49

contracts/SwapContract.sol#L79

contracts/SwapContract.sol#L331

contracts/SwapContract.sol#L80

contracts/SwapContract.sol#L82

contracts/SwapContract.sol#L330

contracts/LPToken.sol#L13

divide-before-multiply

Impact: Medium Confidence: Medium

contracts/SwapContract.sol#L554-L586

contracts/SwapContract.sol#L439-L497

contracts/SwapContract.sol#L554-L586

unused-return

Impact: Medium Confidence: Medium

contracts/SwapContract.sol#L554-L586

contracts/SwapContract.sol#L404-L432

contracts/SwapContract.sol#L554-L586

contracts/SwapContract.sol#L120-L146

contracts/SwapContract.sol#L190-L207

contracts/LPToken.sol#L19-L23

events-maths

Impact: Low Confidence: Medium

contracts/SwapContract.sol#L329-L342

assembly

Impact: Informational Confidence: High

contracts/interfaces/lib/Address.sol#L26-L36

contracts/interfaces/lib/Address.sol#L195-L215

costly-loop

Impact: Informational Confidence: Medium

contracts/SwapContract.sol#L281-L321

contracts/SwapContract.sol#L281-L321

low-level-calls

Impact: Informational Confidence: High

contracts/interfaces/lib/Address.sol#L54-L59

contracts/interfaces/lib/Address.sol#L122-L133

contracts/interfaces/lib/Address.sol#L151-L160

contracts/interfaces/lib/Address.sol#L178-L187

shadowing-local

Impact: Low Confidence: High

contracts/SwapRewards.sol#L21

contracts/BurnableToken.sol#L325

contracts/BurnableToken.sol#L107

contracts/BurnableToken.sol#L325

contracts/BurnableToken.sol#L107

contracts/BurnableToken.sol#L325

contracts/BurnableToken.sol#L107

contracts analyzed (49 contracts with 81 detectors), 272 result(s) found