-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Review #1
base: main
Are you sure you want to change the base?
Fix Review #1
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,14 +23,14 @@ contract NumaOracle is Ownable2Step, INumaOracle { | |
//uint maxSpotOffsetBps = 145;//1.45% | ||
//uint maxSpotOffsetSqrtBps = 1204;//sqrt(1.45%) | ||
|
||
uint160 maxSpotOffsetPlus1SqrtBps = 10072; | ||
uint160 maxSpotOffsetMinus1SqrtBps = 9927; | ||
uint160 public maxSpotOffsetPlus1SqrtBps = 10072; | ||
uint160 public maxSpotOffsetMinus1SqrtBps = 9927; | ||
Comment on lines
+26
to
+27
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
|
||
nuAssetManager public nuAManager; | ||
|
||
event IntervalShort(uint32 _intervalShort); | ||
event IntervalLong(uint32 _intervalLong); | ||
event MaxSpotOffsetBps(uint _maxSpotOffsetBps); | ||
event MaxSpotOffset(uint _maxSpotOffset); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
constructor( | ||
address _token, | ||
uint32 _intervalShort, | ||
|
@@ -69,20 +69,18 @@ contract NumaOracle is Ownable2Step, INumaOracle { | |
|
||
/** | ||
* | ||
* @param _maxSpotOffsetBps offset percentage variable (cf doc) | ||
* @param _maxSpotOffset offset percentage variable (cf doc) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
*/ | ||
function setMaxSpotOffsetBps(uint _maxSpotOffsetBps) external onlyOwner { | ||
require(_maxSpotOffsetBps < 10000, "percentage must be less than 100"); | ||
function setMaxSpotOffset(uint _maxSpotOffset) external onlyOwner { | ||
require(_maxSpotOffset < 1 ether, "percentage must be less than 100"); | ||
Comment on lines
+74
to
+75
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175
Comment on lines
+74
to
+75
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
|
||
maxSpotOffsetPlus1SqrtBps = | ||
100 * | ||
uint160(Math.sqrt(10000 + _maxSpotOffsetBps)); | ||
uint160(Math.sqrt(1 ether + _maxSpotOffset))/1e5; | ||
Comment on lines
77
to
+78
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175
Comment on lines
77
to
+78
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
|
||
maxSpotOffsetMinus1SqrtBps = | ||
100 * | ||
uint160(Math.sqrt(10000 - _maxSpotOffsetBps)); | ||
uint160(Math.sqrt(1 ether - _maxSpotOffset))/1e5; | ||
Comment on lines
80
to
+81
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175
Comment on lines
80
to
+81
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
|
||
emit MaxSpotOffsetBps(_maxSpotOffsetBps); | ||
emit MaxSpotOffset(_maxSpotOffset); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#7. Fixes issues: #175 |
||
} | ||
|
||
/** | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -68,10 +68,12 @@ contract NumaPrinter is Pausable, Ownable2Step { | |
uint256 _amountReceived | ||
); | ||
|
||
// sherlock issue 41 | ||
// CF warning can be bypassed | ||
Comment on lines
+71
to
+72
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#8. Fixes issues: #41
Comment on lines
+71
to
+72
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#8. Fixes issues: #41 |
||
modifier notInWarningCF() { | ||
_; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#8. Fixes issues: #41 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#8. Fixes issues: #41 |
||
uint currentCF = vaultManager.getGlobalCF(); | ||
require(currentCF > vaultManager.getWarningCF(), "minting forbidden"); | ||
_; | ||
} | ||
|
||
constructor( | ||
|
@@ -449,7 +451,7 @@ contract NumaPrinter is Pausable, Ownable2Step { | |
|
||
(uint scaleSynthBurn, , , ) = vaultManager.getSynthScaling(); | ||
// apply scale | ||
costWithoutFee = (costWithoutFee * scaleSynthBurn) / BASE_1000; | ||
costWithoutFee = (costWithoutFee * scaleSynthBurn) / BASE_SCALE; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#6. Fixes issues: #161 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#6. Fixes issues: #161 |
||
// burn fee | ||
uint256 amountToBurn = computeFeeAmountIn( | ||
costWithoutFee, | ||
|
@@ -493,7 +495,7 @@ contract NumaPrinter is Pausable, Ownable2Step { | |
uint256 nuAssetIn = oracle.ethToNuAssetRoundUp(_nuAsset, ethAmount); | ||
(uint scaleSynthBurn, , , ) = vaultManager.getSynthScaling(); | ||
// apply scale | ||
nuAssetIn = (nuAssetIn * BASE_1000) / scaleSynthBurn; | ||
nuAssetIn = (nuAssetIn * BASE_SCALE) / scaleSynthBurn; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#6. Fixes issues: #161 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#6. Fixes issues: #161 |
||
|
||
return (nuAssetIn, amountWithFee - _numaAmount); | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,10 +14,11 @@ import "../interfaces/INumaVault.sol"; | |
|
||
import "./NumaMinter.sol"; | ||
import "../lending/CNumaToken.sol"; | ||
|
||
import "../lending/NumaComptroller.sol"; | ||
import "@openzeppelin/contracts_5.0.2/utils/structs/EnumerableSet.sol"; | ||
import "../utils/constants.sol"; | ||
|
||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
/// @title Numa vault to mint/burn Numa to lst token | ||
contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | ||
using EnumerableSet for EnumerableSet.AddressSet; | ||
|
@@ -172,14 +173,47 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
} | ||
|
||
/** | ||
* @dev minimum reth borrow balance needed to allow partial liquidations | ||
* @dev minimum lst borrow balance needed to allow partial liquidations | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
*/ | ||
function setMinBorrowAmountAllowPartialLiquidation( | ||
uint _minBorrowAmountAllowPartialLiquidation | ||
) external onlyOwner { | ||
minBorrowAmountAllowPartialLiquidation = _minBorrowAmountAllowPartialLiquidation; | ||
} | ||
|
||
/** | ||
* @dev minimum borrow balance needed to allow partial liquidations in numa or in lst | ||
*/ | ||
function getMinBorrowAmountAllowPartialLiquidation(address _cBorrowToken) external view returns (uint) { | ||
if (_cBorrowToken == address(cNuma) ) | ||
{ | ||
// numa borrower | ||
// min amount in numa | ||
( | ||
, | ||
, | ||
uint criticalScaleForNumaPriceAndSellFee, | ||
) = vaultManager.getSynthScaling(); | ||
|
||
uint minBorrowAmountAllowPartialLiquidationNuma = vaultManager | ||
.tokenToNuma( | ||
minBorrowAmountAllowPartialLiquidation, | ||
last_lsttokenvalueWei, | ||
decimals, | ||
criticalScaleForNumaPriceAndSellFee | ||
); | ||
return minBorrowAmountAllowPartialLiquidationNuma; | ||
|
||
} | ||
else | ||
{ | ||
return minBorrowAmountAllowPartialLiquidation; | ||
|
||
} | ||
|
||
|
||
} | ||
|
||
Comment on lines
+184
to
+216
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16.
Comment on lines
+184
to
+216
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
/** | ||
* @dev set the IVaultOracle address (used to compute token price in Eth) | ||
*/ | ||
|
@@ -855,11 +889,12 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
|
||
function startLiquidation() | ||
internal | ||
returns (uint criticalScaleForNumaPriceAndSellFee) | ||
returns (uint criticalScaleForNumaPriceAndSellFee, uint sell_fee) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
{ | ||
( | ||
, | ||
criticalScaleForNumaPriceAndSellFee, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
sell_fee | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
|
||
) = updateVaultAndUpdateDebasing(); | ||
// lock numa supply | ||
|
@@ -975,7 +1010,7 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
"invalid param" | ||
); | ||
|
||
uint criticalScaleForNumaPriceAndSellFee = startLiquidation(); | ||
(uint criticalScaleForNumaPriceAndSellFee,) = startLiquidation(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
|
||
uint numaAmount = _numaAmount; | ||
|
||
|
@@ -985,19 +1020,6 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
// AUDITV2FIX: handle max liquidations | ||
if (_numaAmount == type(uint256).max) { | ||
numaAmount = borrowAmount; | ||
} else { | ||
// min liquidation amount | ||
// convert minimum amount for partial liquidations in numa | ||
uint minBorrowAmountAllowPartialLiquidationNuma = vaultManager | ||
.tokenToNuma( | ||
minBorrowAmountAllowPartialLiquidation, | ||
last_lsttokenvalueWei, | ||
decimals, | ||
criticalScaleForNumaPriceAndSellFee | ||
); | ||
uint minAmount = minBorrowAmountAllowPartialLiquidationNuma; | ||
if (borrowAmount < minAmount) minAmount = borrowAmount; | ||
require(numaAmount >= minAmount, "min liquidation"); | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
|
||
if (_flashloan) { | ||
|
@@ -1015,7 +1037,7 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
|
||
// liquidate | ||
numa.approve(address(cNuma), numaAmount); | ||
cNuma.liquidateBorrow( | ||
(,uint badDebt) = cNuma.liquidateBorrow( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
_borrower, | ||
numaAmount, | ||
CTokenInterface(address(cLstToken)) | ||
|
@@ -1051,9 +1073,15 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
decimals, | ||
criticalScaleForNumaPriceAndSellFee | ||
); | ||
// sherlock 86 42 | ||
// for numa borrow, numa <-> lst conversions should use buyPrice | ||
maxNumaProfitForLiquidations = (maxNumaProfitForLiquidations * vaultManager.getBuyFee()) / 1 ether; | ||
Comment on lines
+1080
to
+1082
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
|
||
// cap profit | ||
if (numaLiquidatorProfit > maxNumaProfitForLiquidations) | ||
// sherlock 101 153 | ||
// cap only if there is no bad debt, because if we are in bad debt it means this is a partial liquidation which | ||
Comment on lines
1084
to
+1086
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
// should not be capped | ||
if ((badDebt == 0) && (numaLiquidatorProfit > maxNumaProfitForLiquidations)) | ||
Comment on lines
+1085
to
+1088
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
numaLiquidatorProfit = maxNumaProfitForLiquidations; | ||
|
||
uint numaToSend = numaLiquidatorProfit; | ||
|
@@ -1078,6 +1106,9 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
decimals, | ||
criticalScaleForNumaPriceAndSellFee | ||
); | ||
// sherlock 86 42 | ||
// for numa borrow, numa <-> lst conversions should use buyPrice | ||
lstProvidedEstimate = (lstProvidedEstimate * 1 ether) / vaultManager.getBuyFee(); | ||
Comment on lines
+1113
to
+1115
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
|
||
uint lstLiquidatorProfit; | ||
// we don't revert if liquidation is not profitable because it might be profitable | ||
|
@@ -1086,8 +1117,13 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
lstLiquidatorProfit = receivedlst - lstProvidedEstimate; | ||
} | ||
|
||
|
||
// cap profit | ||
// sherlock 101 153 | ||
// cap only if there is no bad debt, because if we are in bad debt it means this is a partial liquidation which | ||
// should not be capped | ||
Comment on lines
+1124
to
+1128
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
uint vaultProfit; | ||
if (lstLiquidatorProfit > maxLstProfitForLiquidations) { | ||
if ((badDebt == 0) && (lstLiquidatorProfit > maxLstProfitForLiquidations)) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
vaultProfit = lstLiquidatorProfit - maxLstProfitForLiquidations; | ||
} | ||
Comment on lines
+1128
to
1132
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
|
||
|
@@ -1132,12 +1168,9 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
lstAmount = borrowAmount; | ||
} | ||
|
||
uint minAmount = minBorrowAmountAllowPartialLiquidation; | ||
if (borrowAmount < minAmount) minAmount = borrowAmount; | ||
|
||
require(lstAmount >= minAmount, "min liquidation"); | ||
|
||
uint criticalScaleForNumaPriceAndSellFee = startLiquidation(); | ||
(uint criticalScaleForNumaPriceAndSellFee,uint sellfee) = startLiquidation(); | ||
Comment on lines
1176
to
+1177
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
|
||
if (!_flashloan) { | ||
// user supplied funds | ||
|
@@ -1151,7 +1184,7 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
|
||
// liquidate | ||
IERC20(lstToken).approve(address(cLstToken), lstAmount); | ||
cLstToken.liquidateBorrow( | ||
(,uint badDebt) = cLstToken.liquidateBorrow( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
_borrower, | ||
lstAmount, | ||
CTokenInterface(address(cNuma)) | ||
|
@@ -1176,7 +1209,10 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
uint lstLiquidatorProfit = lstReceived - lstAmount; | ||
|
||
// cap profit | ||
if (lstLiquidatorProfit > maxLstProfitForLiquidations) | ||
// sherlock 101 153 | ||
// cap only if there is no bad debt, because if we are in bad debt it means this is a partial liquidation which | ||
// should not be capped | ||
if ((badDebt == 0) && (lstLiquidatorProfit > maxLstProfitForLiquidations)) | ||
Comment on lines
+1216
to
+1219
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
lstLiquidatorProfit = maxLstProfitForLiquidations; | ||
|
||
uint lstToSend = lstLiquidatorProfit; | ||
|
@@ -1193,12 +1229,20 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
decimals, | ||
criticalScaleForNumaPriceAndSellFee | ||
); | ||
// sherlock 86 42 | ||
// for lst borrow, numa <-> lst conversions should use sellPrice | ||
numaProvidedEstimate = (numaProvidedEstimate * 1 ether) / sellfee; | ||
|
||
Comment on lines
+1236
to
+1239
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
uint maxNumaProfitForLiquidations = vaultManager.tokenToNuma( | ||
maxLstProfitForLiquidations, | ||
last_lsttokenvalueWei, | ||
decimals, | ||
Comment on lines
1240
to
1243
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
criticalScaleForNumaPriceAndSellFee | ||
); | ||
// sherlock 86 42 | ||
// for lst borrow, numa <-> lst conversions should use sellPrice | ||
maxNumaProfitForLiquidations = (maxNumaProfitForLiquidations * 1 ether) / sellfee; | ||
|
||
Comment on lines
+1246
to
+1249
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#13. |
||
|
||
uint numaLiquidatorProfit; | ||
// we don't revert if liquidation is not profitable because it might be profitable | ||
|
@@ -1208,7 +1252,11 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
} | ||
|
||
uint vaultProfit; | ||
if (numaLiquidatorProfit > maxNumaProfitForLiquidations) { | ||
// cap profit | ||
// sherlock 101 153 | ||
// cap only if there is no bad debt, because if we are in bad debt it means this is a partial liquidation which | ||
// should not be capped | ||
if ((badDebt == 0) && (numaLiquidatorProfit > maxNumaProfitForLiquidations)) { | ||
Comment on lines
+1259
to
+1263
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#16. |
||
vaultProfit = | ||
numaLiquidatorProfit - | ||
maxNumaProfitForLiquidations; | ||
|
@@ -1318,4 +1366,14 @@ contract NumaVault is Ownable2Step, ReentrancyGuard, Pausable, INumaVault { | |
} | ||
return (extSize > 0); | ||
} | ||
|
||
|
||
function borrowAllowed(address _ctokenAddress) external view returns (bool allowed) | ||
{ | ||
allowed = true; | ||
if (_ctokenAddress == address(cNuma)) | ||
{ | ||
Comment on lines
+1373
to
+1379
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#14. Fixes issues: #57 |
||
allowed = vaultManager.numaBorrowAllowed(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#14. Fixes issues: #57 |
||
} | ||
} | ||
Comment on lines
+1381
to
+1382
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#14. Fixes issues: #57 |
||
} | ||
Comment on lines
+1377
to
1383
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change related to NumaMoney/Numa#14. Fixes issues: #57 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change related to NumaMoney/Numa#7.
Fixes issues: #175