Farseen0/scar-pairs huggingface dataset:
HIGH severity: Vulnerable function: ```\nfunction deposit(\n  GMXTypes.Store storage self,\n  GMXTypes.DepositParams memory dp,\n  bool . ```\nfunction deposit(\n  GMXTypes.Store storage self,\n  GMXTypes.DepositParams memory dp,\n  bool isNative\n) external {\n  // Sweep any tokenA/B in vault to the temporary trove for future compouding and to prevent\n  // it from being considered as part of depositor's assets\n  if (self.tokenA.bal

Vulnerable code:
```\nfunction deposit(\n  GMXTypes.Store storage self,\n  GMXTypes.DepositParams memory dp,\n  bool isNative\n) external {\n  // Sweep any tokenA/B in vault to the temporary trove for future compouding and to prevent\n  // it from being considered as part of depositor's assets\n  if (self.tokenA.balanceOf(address(this)) > 0) {\n    self.tokenA.safeTransfer(self.trove, self.tokenA.balanceOf(address(this)));\n  }\n  if (self.tokenB.balanceOf(address(this)) > 0) {\n    self.tokenB.safeTransfer(self.trove, self.tokenB.balanceOf(address(this)));\n  }\n // rest of code\n}\n```\n
HIGH severity: Vulnerable function: ```\nFile: Curve2TokenConvexHelper.sol\n    function reinvestReward(\n        Curve2TokenConvexStrat. ```\nFile: Curve2TokenConvexHelper.sol\n    function reinvestReward(\n        Curve2TokenConvexStrategyContext calldata context,\n        ReinvestRewardParams calldata params\n    ) external {\n..SNIP..\n        // Make sure we are joining with the right proportion to minimize slippage\n        pool

Vulnerable code:
```\nFile: Curve2TokenConvexHelper.sol\n    function reinvestReward(\n        Curve2TokenConvexStrategyContext calldata context,\n        ReinvestRewardParams calldata params\n    ) external {\n..SNIP..\n        // Make sure we are joining with the right proportion to minimize slippage\n        poolContext._validateSpotPriceAndPairPrice({\n            strategyContext: strategyContext,\n            oraclePrice: poolContext.basePool._getOraclePairPrice(strategyContext),\n            primaryAmount: primaryAmount,\n            secondaryAmount: secondaryAmount\n        });\n```\n
MEDIUM severity: Vulnerable function: ```\nuint256 assetTotalSupply = asset.balanceOf(address(this));\nuint256 availab. ```\nuint256 assetTotalSupply = asset.balanceOf(address(this));\nuint256 availableTotalSupply = assetTotalSupply.sub(totalUnclaimed);\nuint256 newSeconds = currentTimestamp.sub(lastDripTimestamp);\nuint256 nextExchangeRateMantissa = exchangeRateMantissa;\nuint256 newTokens;\nuint256 measureTotalSupp

Vulnerable code:
```\nuint256 assetTotalSupply = asset.balanceOf(address(this));\nuint256 availableTotalSupply = assetTotalSupply.sub(totalUnclaimed);\nuint256 newSeconds = currentTimestamp.sub(lastDripTimestamp);\nuint256 nextExchangeRateMantissa = exchangeRateMantissa;\nuint256 newTokens;\nuint256 measureTotalSupply = measure.totalSupply();\n\nif (measureTotalSupply > 0 && availableTotalSupply > 0 && newSeconds > 0) {\n  newTokens = newSeconds.mul(dripRatePerSecond);\n  if (newTokens > availableTotalSupply) {\n    newTokens = availableTotalSupply;\n  }\n  uint256 indexDeltaMantissa = measureTotalSupply > 0 ? FixedPoint.calculateMantissa(newTokens, measureTotalSupply) : 0;\n  nextExchangeRateMantissa = nextExchangeRateMantissa.add(indexDeltaMantissa);\n\n  emit Dripped(\n    newTokens\n  );\n}\n```\n
HIGH severity: Vulnerable function: ```\nuint amountOut = IWETH10(WETH).balanceOf(address(this));\nrequire(\n    IWE. ```\nuint amountOut = IWETH10(WETH).balanceOf(address(this));\nrequire(\n    IWETH10(sp.tokenOut).balanceOf(address(this)).sub(balanceBefore) >= sp.amountOut,\n    'DAOfiV1Router: INSUFFICIENT\_OUTPUT\_AMOUNT'\n);\n```\n

Vulnerable code:
```\nuint amountOut = IWETH10(WETH).balanceOf(address(this));\nrequire(\n    IWETH10(sp.tokenOut).balanceOf(address(this)).sub(balanceBefore) >= sp.amountOut,\n    'DAOfiV1Router: INSUFFICIENT\_OUTPUT\_AMOUNT'\n);\n```\n
MEDIUM severity: Vulnerable function: ```\n function removeOracleSignerAfterSignal(address account) external onlyTimelockAdmin nonReentran. ```\n function removeOracleSignerAfterSignal(address account) external onlyTimelockAdmin nonReentrant {\n        bytes32 actionKey = _addOracleSignerActionKey(account);\n        _validateAndClearAction(actionKey, "removeOracleSigner");\n\n        oracleStore.removeSigner(account);\n\n        EventUt

Vulnerable code:
```\n function removeOracleSignerAfterSignal(address account) external onlyTimelockAdmin nonReentrant {\n        bytes32 actionKey = _addOracleSignerActionKey(account);\n        _validateAndClearAction(actionKey, "removeOracleSigner");\n\n        oracleStore.removeSigner(account);\n\n        EventUtils.EventLogData memory eventData;\n        eventData.addressItems.initItems(1);\n        eventData.addressItems.setItem(0, "account", account);\n        eventEmitter.emitEventLog1(\n            "RemoveOracleSigner",\n            actionKey,\n            eventData\n        );\n    }\n```\n
MEDIUM severity: Vulnerable function: ```\n  function redeemYield(uint256 amount) external {\n    if(amount == 0) revert InvalidRedemption. ```\n  function redeemYield(uint256 amount) external {\n    if(amount == 0) revert InvalidRedemption();\n    if(block.timestamp < concludeTime + delay || !concluded) revert NotConcluded();\n    uint256 yieldShare = FixedPointMathLib.divWad(amount, ERC20(yt).totalSupply());\n    YieldToken(yt).burnYT

Vulnerable code:
```\n  function redeemYield(uint256 amount) external {\n    if(amount == 0) revert InvalidRedemption();\n    if(block.timestamp < concludeTime + delay || !concluded) revert NotConcluded();\n    uint256 yieldShare = FixedPointMathLib.divWad(amount, ERC20(yt).totalSupply());\n    YieldToken(yt).burnYT(msg.sender, amount);\n    uint256 yieldTokensLength = yieldTokens.length;\n    for(uint8 i; i < yieldTokensLength; ++i) {\n      uint256 finalYield;\n      if(yieldTokens[i] == depositToken) {\n        finalYield = ERC20(yieldTokens[i]).balanceOf(address(this)) - depositTokenAmount;\n      }\n      else {\n        finalYield = ERC20(yieldTokens[i]).balanceOf(address(this));\n      }\n      uint256 claimable = FixedPointMathLib.mulWad(finalYield, yieldShare);\n      SafeTransferLib.safeTransfer(yieldTokens[i], msg.sender, claimable);\n    }\n    emit YieldTokenRedemption(msg.sender, amount);\n  }\n```\n
MEDIUM severity: Vulnerable function: ```\nif (\n operators.value[\_operatorIndex].limit < \_limit &&\n StakingContrac. ```\nif (\n operators.value[\_operatorIndex].limit < \_limit &&\n StakingContractStorageLib.getLastValidatorEdit() > \_snapshot\n) {\n revert LastEditAfterSnapshot();\n}\n```\n

Vulnerable code:
```\nif (\n operators.value[\_operatorIndex].limit < \_limit &&\n StakingContractStorageLib.getLastValidatorEdit() > \_snapshot\n) {\n revert LastEditAfterSnapshot();\n}\n```\n
HIGH severity: Vulnerable function: ```\nfunction remove(UniqueAddressQueue storage baseQueue, address addrToRemove) internal returns (b. ```\nfunction remove(UniqueAddressQueue storage baseQueue, address addrToRemove) internal returns (bool) {\n    if (!contains(baseQueue, addrToRemove)) {\n        return false;\n    }\n\n    if (baseQueue.HEAD == addrToRemove) {\n        return removeFirst(baseQueue);\n    }\n\n    if (baseQueue.TAI

Vulnerable code:
```\nfunction remove(UniqueAddressQueue storage baseQueue, address addrToRemove) internal returns (bool) {\n    if (!contains(baseQueue, addrToRemove)) {\n        return false;\n    }\n\n    if (baseQueue.HEAD == addrToRemove) {\n        return removeFirst(baseQueue);\n    }\n\n    if (baseQueue.TAIL == addrToRemove) {\n        return removeLast(baseQueue);\n    }\n\n    address prevAddr = baseQueue.queue[addrToRemove].prev;\n    address nextAddr = baseQueue.queue[addrToRemove].next;\n    baseQueue.queue[prevAddr].next = nextAddr;\n    baseQueue.queue[nextAddr].prev = prevAddr;\n    baseQueue.queueLength--;\n\n    return true;\n}\n```\n
MEDIUM severity: Vulnerable function: ```\nfunction getCurrentStage() public view returns (uint8) {\n    return getStageAtBlock(getCurrent. ```\nfunction getCurrentStage() public view returns (uint8) {\n    return getStageAtBlock(getCurrentBlockNumber());\n}\n```\n

Vulnerable code:
```\nfunction getCurrentStage() public view returns (uint8) {\n    return getStageAtBlock(getCurrentBlockNumber());\n}\n```\n
MEDIUM severity: Vulnerable function: ```\nfunction getTknOhmPrice() public view override returns (uint256) {\n    // Get stETH per wstETH. ```\nfunction getTknOhmPrice() public view override returns (uint256) {\n    // Get stETH per wstETH (18 Decimals)\n    uint256 stethPerWsteth = IWsteth(pairToken).stEthPerToken();\n\n    // Get ETH per OHM (18 Decimals)\n    uint256 ethPerOhm = _validatePrice(ohmEthPriceFeed.feed, ohmEthPriceFeed.u

Vulnerable code:
```\nfunction getTknOhmPrice() public view override returns (uint256) {\n    // Get stETH per wstETH (18 Decimals)\n    uint256 stethPerWsteth = IWsteth(pairToken).stEthPerToken();\n\n    // Get ETH per OHM (18 Decimals)\n    uint256 ethPerOhm = _validatePrice(ohmEthPriceFeed.feed, ohmEthPriceFeed.updateThreshold);\n\n    // Get stETH per ETH (18 Decimals)\n    uint256 stethPerEth = _validatePrice(\n        stethEthPriceFeed.feed,\n        stethEthPriceFeed.updateThreshold\n    );\n\n    // Calculate wstETH per OHM (18 decimals)\n    return (ethPerOhm * 1e36) / (stethPerWsteth * stethPerEth);\n}\n```\n
HIGH severity: Vulnerable function: ```\n    function exerciseOptionsReceiver(address srcChainSender, bytes memory _data) public payable. ```\n    function exerciseOptionsReceiver(address srcChainSender, bytes memory _data) public payable {\n// rest of code\n            ITapiocaOptionBroker(_options.target).exerciseOption(\n              _options.oTAPTokenID,\n                address(this), //payment token\n                _options.ta

Vulnerable code:
```\n    function exerciseOptionsReceiver(address srcChainSender, bytes memory _data) public payable {\n// rest of code\n            ITapiocaOptionBroker(_options.target).exerciseOption(\n              _options.oTAPTokenID,\n                address(this), //payment token\n                _options.tapAmount\n            );\n            _approve(address(this), address(pearlmit), 0);\n            uint256 bAfter = balanceOf(address(this));\n\n            // Refund if less was used.\n            if (bBefore > bAfter) {\n                uint256 diff = bBefore - bAfter;\n                if (diff < _options.paymentTokenAmount) {\n                    IERC20(address(this)).safeTransfer(_options.from, _options.paymentTokenAmount - diff);\n                }\n            }\n// rest of code\n```\n
MEDIUM severity: Vulnerable function: ```\n    function rebalance() override public {\n      uint256 ownval = getOwnValuation(); // it low. ```\n    function rebalance() override public {\n      uint256 ownval = getOwnValuation(); // it low enough to dive into if statement (see line below) \n      (uint256 USSDamount, uint256 DAIamount) = getSupplyProportion(); // (3000e6 USSD, 2000e18 DAI)\n      if (ownval < 1e6 - threshold) {\n      

Vulnerable code:
```\n    function rebalance() override public {\n      uint256 ownval = getOwnValuation(); // it low enough to dive into if statement (see line below) \n      (uint256 USSDamount, uint256 DAIamount) = getSupplyProportion(); // (3000e6 USSD, 2000e18 DAI)\n      if (ownval < 1e6 - threshold) {\n        // peg-down recovery\n        BuyUSSDSellCollateral((USSDamount - DAIamount / 1e12)/2); //  500 * 1e6     = (3000e6 - 2000e18 / 1e12) / 2\n```\n
MEDIUM severity: Vulnerable function: ```\n  function validateCommitment(IAstariaRouter.Commitment calldata commitment)\n    public\n    r. ```\n  function validateCommitment(IAstariaRouter.Commitment calldata commitment)\n    public\n    returns (bool valid, IAstariaRouter.LienDetails memory ld)\n  {\n    require(\n      commitment.lienRequest.strategy.deadline >= block.timestamp,\n      "deadline passed"\n    );\n\n\n    require(\n   

Vulnerable code:
```\n  function validateCommitment(IAstariaRouter.Commitment calldata commitment)\n    public\n    returns (bool valid, IAstariaRouter.LienDetails memory ld)\n  {\n    require(\n      commitment.lienRequest.strategy.deadline >= block.timestamp,\n      "deadline passed"\n    );\n\n\n    require(\n      strategyValidators[commitment.lienRequest.nlrType] != address(0),\n      "invalid strategy type"\n    );\n\n\n    bytes32 leaf;\n    (leaf, ld) = IStrategyValidator(\n      strategyValidators[commitment.lienRequest.nlrType]\n    ).validateAndParse(\n        commitment.lienRequest,\n        COLLATERAL_TOKEN.ownerOf(\n          commitment.tokenContract.computeId(commitment.tokenId)\n        ),\n        commitment.tokenContract,\n        commitment.tokenId\n      );\n\n\n    return (\n      MerkleProof.verifyCalldata(\n        commitment.lienRequest.merkle.proof,\n        commitment.lienRequest.merkle.root,\n        leaf\n      ),\n      ld\n    );\n  }\n```\n
MEDIUM severity: Vulnerable function: ```\n    function test_revert_underflow() public {\n        _accessController.grantRole(Roles.SOLVER. ```\n    function test_revert_underflow() public {\n        _accessController.grantRole(Roles.SOLVER_ROLE, address(this));\n        _accessController.grantRole(Roles.LMP_FEE_SETTER_ROLE, address(this));\n\n        // User is going to deposit 1500 asset\n        _asset.mint(address(this), 1500);\n   

Vulnerable code:
```\n    function test_revert_underflow() public {\n        _accessController.grantRole(Roles.SOLVER_ROLE, address(this));\n        _accessController.grantRole(Roles.LMP_FEE_SETTER_ROLE, address(this));\n\n        // User is going to deposit 1500 asset\n        _asset.mint(address(this), 1500);\n        _asset.approve(address(_lmpVault), 1500);\n        _lmpVault.deposit(1500, address(this));\n\n        // Deployed 700 asset to DV1\n        _underlyerOne.mint(address(this), 700);\n        _underlyerOne.approve(address(_lmpVault), 700);\n        _lmpVault.rebalance(\n            address(_destVaultOne),\n            address(_underlyerOne), // tokenIn\n            700,\n            address(0), // destinationOut, none when sending out baseAsset\n            address(_asset), // baseAsset, tokenOut\n            700\n        );\n\n        // Deploy 600 asset to DV2\n        _underlyerTwo.mint(address(this), 600);\n        _underlyerTwo.approve(address(_lmpVault), 600);\n        _lmpVault.rebalance(\n            address(_destVaultTwo),\n            address(_underlyerTwo), // tokenIn\n            600,\n            address(0), // destinationOut, none when sending out baseAsset\n            address(_asset), // baseAsset, tokenOut\n            600\n        );\n\n        // Deployed 200 asset to DV3\n        _underlyerThree.mint(address(this), 200);\n        _underlyerThree.approve(address(_lmpVault), 200);\n        _lmpVault.rebalance(\n            address(_destVaultThree),\n            address(_underlyerThree), // tokenIn\n            200,\n            address(0), // destinationOut, none when sending out baseAsset\n            address(_asset), // baseAsset, tokenOut\n            200\n        );\n\n        // Drop the price of DV2 to 70% of original, so that 600 we transferred out is now only worth 420\n         _mockRootPrice(address(_underlyerTwo), 7e17);\n\n        // Revert because of an arithmetic underflow\n        vm.expectRevert();\n        uint256 assets = _lmpVault.redeem(1000, address(this), address(this));\n    }\n```\n
MEDIUM severity: Vulnerable function: ```\nEvery Pool is a standalone smart contract. It is made upgradeable with Open. ```\nEvery Pool is a standalone smart contract. It is made upgradeable with OpenZeppelin's Proxy Upgrade Pattern.\n```\n

Vulnerable code:
```\nEvery Pool is a standalone smart contract. It is made upgradeable with OpenZeppelin's Proxy Upgrade Pattern.\n```\n
HIGH severity: Vulnerable function: ```\n\_createPermissions(\_acl, grantees, \_fundraisingApps.bondedTokenManager, . ```\n\_createPermissions(\_acl, grantees, \_fundraisingApps.bondedTokenManager, \_fundraisingApps.bondedTokenManager.MINT\_ROLE(), \_owner);\n\_acl.createPermission(\_fundraisingApps.marketMaker, \_fundraisingApps.bondedTokenManager, \_fundraisingApps.bondedTokenManager.BURN\_ROLE(), \_owner);\n```\

Vulnerable code:
```\n\_createPermissions(\_acl, grantees, \_fundraisingApps.bondedTokenManager, \_fundraisingApps.bondedTokenManager.MINT\_ROLE(), \_owner);\n\_acl.createPermission(\_fundraisingApps.marketMaker, \_fundraisingApps.bondedTokenManager, \_fundraisingApps.bondedTokenManager.BURN\_ROLE(), \_owner);\n```\n
HIGH severity: Vulnerable function: ```\nfunction getPositionValue() public view returns (uint256) {\n    uint256 markPrice = getMarkPri. ```\nfunction getPositionValue() public view returns (uint256) {\n    uint256 markPrice = getMarkPriceTwap(15);\n    int256 positionSize = IAccountBalance(clearingHouse.getAccountBalance())\n        .getTakerPositionSize(address(this), market);\n    return markPrice.mulWadUp(_abs(positionSize));\n}\

Vulnerable code:
```\nfunction getPositionValue() public view returns (uint256) {\n    uint256 markPrice = getMarkPriceTwap(15);\n    int256 positionSize = IAccountBalance(clearingHouse.getAccountBalance())\n        .getTakerPositionSize(address(this), market);\n    return markPrice.mulWadUp(_abs(positionSize));\n}\n\nfunction getMarkPriceTwap(uint32 twapInterval)\n    public\n    view\n    returns (uint256)\n{\n    IExchange exchange = IExchange(clearingHouse.getExchange());\n    uint256 markPrice = exchange\n        .getSqrtMarkTwapX96(market, twapInterval)\n        .formatSqrtPriceX96ToPriceX96()\n        .formatX96ToX10_18();\n    return markPrice;\n}\n```\n
HIGH severity: Vulnerable function: ```\nrefundMap[policyIndex\_][week] = incomeMap[policyIndex\_][week].mul(\n allC. ```\nrefundMap[policyIndex\_][week] = incomeMap[policyIndex\_][week].mul(\n allCovered.sub(maximumToCover)).div(allCovered);\n```\n

Vulnerable code:
```\nrefundMap[policyIndex\_][week] = incomeMap[policyIndex\_][week].mul(\n allCovered.sub(maximumToCover)).div(allCovered);\n```\n
HIGH severity: Vulnerable function: ```\nfunction approvedToLog(address \_caller) public pure returns (bool) {\n    /\* TODO: auth via s. ```\nfunction approvedToLog(address \_caller) public pure returns (bool) {\n    /\* TODO: auth via system \*/\n    \_caller;\n    return true;\n}\n```\n

Vulnerable code:
```\nfunction approvedToLog(address \_caller) public pure returns (bool) {\n    /\* TODO: auth via system \*/\n    \_caller;\n    return true;\n}\n```\n
HIGH severity: Vulnerable function: ```\nFile: CurveV2Adapter.sol\n    function getExecutionData(address from, Trade calldata trade)\n  . ```\nFile: CurveV2Adapter.sol\n    function getExecutionData(address from, Trade calldata trade)\n        internal view returns (\n            address spender,\n            address target,\n            uint256 msgValue,\n            bytes memory executionCallData\n        )\n    {\n        if (trade

Vulnerable code:
```\nFile: CurveV2Adapter.sol\n    function getExecutionData(address from, Trade calldata trade)\n        internal view returns (\n            address spender,\n            address target,\n            uint256 msgValue,\n            bytes memory executionCallData\n        )\n    {\n        if (trade.tradeType == TradeType.EXACT_IN_SINGLE) {\n            CurveV2SingleData memory data = abi.decode(trade.exchangeData, (CurveV2SingleData));\n            executionCallData = abi.encodeWithSelector(\n                ICurveRouterV2.exchange.selector,\n                data.pool,\n                _getTokenAddress(trade.sellToken),\n                _getTokenAddress(trade.buyToken),\n                trade.amount,\n                trade.limit,\n                address(this)\n            );\n        } else if (trade.tradeType == TradeType.EXACT_IN_BATCH) {\n            CurveV2BatchData memory data = abi.decode(trade.exchangeData, (CurveV2BatchData));\n            // Array of pools for swaps via zap contracts. This parameter is only needed for\n            // Polygon meta-factories underlying swaps.\n            address[4] memory pools;\n            executionCallData = abi.encodeWithSelector(\n                ICurveRouterV2.exchange_multiple.selector,\n                data.route,\n                data.swapParams,\n                trade.amount,\n                trade.limit,\n                pools,\n                address(this)\n            );\n```\n
MEDIUM severity: Vulnerable function: ```\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) . ```\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return\n    interfaceId == _INTERFACEID_LSP6 || interfaceId == _INTERFACEID_ERC1271 ||\n        super.supportsInterface(interfaceId);\n           }\n```\n

Vulnerable code:
```\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return\n    interfaceId == _INTERFACEID_LSP6 || interfaceId == _INTERFACEID_ERC1271 ||\n        super.supportsInterface(interfaceId);\n           }\n```\n
HIGH severity: Vulnerable function: ```\naddress owner = ownerOf(_tokenId);\nif (msg.sender != owner && !isApprovedF. ```\naddress owner = ownerOf(_tokenId);\nif (msg.sender != owner && !isApprovedForAll[owner][msg.sender] && msg.sender != getApproved[_tokenId]) revert NotAuthorized();\n```\n

Vulnerable code:
```\naddress owner = ownerOf(_tokenId);\nif (msg.sender != owner && !isApprovedForAll[owner][msg.sender] && msg.sender != getApproved[_tokenId]) revert NotAuthorized();\n```\n
MEDIUM severity: Vulnerable function: ```\n    function approve(address spender, uint256 amount) public virtual returns (bool) {\n        . ```\n    function approve(address spender, uint256 amount) public virtual returns (bool) {\n        allowance[msg.sender][spender] = amount;\n\n        emit Approval(msg.sender, spender, amount);\n\n        return true;\n    }\n```\n

Vulnerable code:
```\n    function approve(address spender, uint256 amount) public virtual returns (bool) {\n        allowance[msg.sender][spender] = amount;\n\n        emit Approval(msg.sender, spender, amount);\n\n        return true;\n    }\n```\n
MEDIUM severity: Vulnerable function: ```\n        it("PoC: staker with locked balance gets more rewards even when jus. ```\n        it("PoC: staker with locked balance gets more rewards even when just locked", async () => {\n            const trustAmount = parseUnits("2000");\n            const borrowAmount = parseUnits("1800");\n            const [account, staker, borrower] = members;\n\n            const [accountS

Vulnerable code:
```\n        it("PoC: staker with locked balance gets more rewards even when just locked", async () => {\n            const trustAmount = parseUnits("2000");\n            const borrowAmount = parseUnits("1800");\n            const [account, staker, borrower] = members;\n\n            const [accountStaked, borrowerStaked, stakerStaked] = await helpers.getStakedAmounts(\n                account,\n                staker,\n                borrower\n            );\n\n            expect(accountStaked).eq(borrowerStaked);\n            expect(borrowerStaked).eq(stakerStaked);\n\n            await helpers.updateTrust(staker, borrower, trustAmount);\n            \n            await roll(10);\n            await helpers.borrow(borrower, borrowAmount); // borrows just after withdrawing\n            \n            const [accountMultiplier, stakerMultiplier] = await helpers.getRewardsMultipliers(account, staker);\n            console.log("accountMultiplier: ", accountMultiplier);\n            console.log("StakerMultiplier: ", stakerMultiplier);\n            expect(accountMultiplier).lt(stakerMultiplier);  // the multiplier is larger even if just locked\n        });\n```\n