Swaylend | IOP
Reports by Severity
Critical
#35767 [SC-Critical] constanct value is used to check `price.confidence`
#35758 [SC-Critical] Loss of yield to the protocol due to incorrect interest rate applied
#35684 [SC-Critical] Incorrect Pyth Oracle Price Feed Process Leads to Wrong Collateral Value Calculation
High
#35793 [SC-High] `src-20.burn` should use "==" instead of ">="
#35876 [SC-High] Users will lose funds on calls to critical functions if the prices are not updated
#35750 [SC-High] User loss due to Pyth oracle update fee being smaller than the msg amount sent
#36117 [SC-High] Permanent freezing of tokens when user sends extra tokens as update fee
#35831 [SC-High] By bypassing base_borrow_min limitation borrows can create inabsorbable loans
Medium
#35815 [SC-Medium] `Market.present_value_borrow` should be roundUp
#36137 [SC-Medium] `absorb_internal` might be DOSed
#36034 [SC-Medium] truncation in the `present_value_borrow()` can lead to loss of accrued borrow interests.
#35853 [SC-Medium] permissonless constructor always for front-running owner initialization.
Low
#35761 [SC-Low] Unhandled smaller base decimals than 6 or bigger than the collateral's decimals
#35760 [SC-Low] `market::available_to_borrow()` compares the collateral in USD against the borrow in base units
#35724 [SC-Low] Users can withdraw collateral even when the admin pauses the contract.
#36158 [SC-Low] `Market.collateral_value_to_sell` will always revert if collateral_configuration.decimals < storage.market_configuration.base_token_decimals
#35908 [SC-Low] If the collateral token''s decimal is <= the base token decimal in a market, `collateral_value_to_sell()` will always revert & `available_to_borrow()` will return a wrong amount tha...
#35732 [SC-Low] Withdrawals can not be paused which could lead to protocol insolvency in case of issues
Insight
#35708 [SC-Insight] Adding too many collaterals will halt the protocol operation
#35999 [SC-Insight] Incorrect event name
#35794 [SC-Insight] `Market.absorb` can be called when `Market.supply_collateral` is paused
#36065 [SC-Insight] `Market.update_market_configuration` should reuse old configuration's `base_token.decimals`
#36108 [SC-Insight] `recipient` with a NULL address will lead to permanent loss of minted coins
#36138 [SC-Insight] `Market.update_collateral_asset` should reuse old configuration's `asset_id`
#35768 [SC-Insight] `Market.set_pyth_contract_id` should emit an event
Reports by Type
Smart Contract
#35708 [SC-Insight] Adding too many collaterals will halt the protocol operation
#35761 [SC-Low] Unhandled smaller base decimals than 6 or bigger than the collateral's decimals
#35793 [SC-High] `src-20.burn` should use "==" instead of ">="
#35876 [SC-High] Users will lose funds on calls to critical functions if the prices are not updated
#35767 [SC-Critical] constanct value is used to check `price.confidence`
#35750 [SC-High] User loss due to Pyth oracle update fee being smaller than the msg amount sent
#35999 [SC-Insight] Incorrect event name
#35794 [SC-Insight] `Market.absorb` can be called when `Market.supply_collateral` is paused
#35758 [SC-Critical] Loss of yield to the protocol due to incorrect interest rate applied
#35760 [SC-Low] `market::available_to_borrow()` compares the collateral in USD against the borrow in base units
#35815 [SC-Medium] `Market.present_value_borrow` should be roundUp
#35724 [SC-Low] Users can withdraw collateral even when the admin pauses the contract.
#36065 [SC-Insight] `Market.update_market_configuration` should reuse old configuration's `base_token.decimals`
#36108 [SC-Insight] `recipient` with a NULL address will lead to permanent loss of minted coins
#36117 [SC-High] Permanent freezing of tokens when user sends extra tokens as update fee
#36137 [SC-Medium] `absorb_internal` might be DOSed
#36138 [SC-Insight] `Market.update_collateral_asset` should reuse old configuration's `asset_id`
#36158 [SC-Low] `Market.collateral_value_to_sell` will always revert if collateral_configuration.decimals < storage.market_configuration.base_token_decimals
#35831 [SC-High] By bypassing base_borrow_min limitation borrows can create inabsorbable loans
#35684 [SC-Critical] Incorrect Pyth Oracle Price Feed Process Leads to Wrong Collateral Value Calculation
#35768 [SC-Insight] `Market.set_pyth_contract_id` should emit an event
#35908 [SC-Low] If the collateral token''s decimal is <= the base token decimal in a market, `collateral_value_to_sell()` will always revert & `available_to_borrow()` will return a wrong amount tha...
#35732 [SC-Low] Withdrawals can not be paused which could lead to protocol insolvency in case of issues
#36034 [SC-Medium] truncation in the `present_value_borrow()` can lead to loss of accrued borrow interests.
#35853 [SC-Medium] permissonless constructor always for front-running owner initialization.