Skip to content

Commit 2df54c5

Browse files
authored
Merge pull request #778 from oceanprotocol/feature/fre_remove_transfer_from_owner
Remove owner transfer of baseTokens on sellDT
2 parents b8377a1 + bda9fd5 commit 2df54c5

File tree

3 files changed

+436
-3730
lines changed

3 files changed

+436
-3730
lines changed

contracts/pools/fixedRate/FixedRateExchange.sol

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -472,16 +472,14 @@ contract FixedRateExchange is ReentrancyGuard, IFixedRateExchange {
472472
);
473473

474474
if (datatokenAmount > exchanges[exchangeId].dtBalance) {
475-
//first, let's try to mint
475+
//let's try to mint
476476
if(exchanges[exchangeId].withMint
477477
&& IERC20Template(exchanges[exchangeId].datatoken).isMinter(address(this)))
478478
{
479479
IERC20Template(exchanges[exchangeId].datatoken).mint(msg.sender,datatokenAmount);
480480
}
481481
else{
482-
_pullUnderlying(exchanges[exchangeId].datatoken,exchanges[exchangeId].exchangeOwner,
483-
msg.sender,
484-
datatokenAmount);
482+
revert("FixedRateExchange: No available datatokens");
485483
}
486484
} else {
487485
exchanges[exchangeId].dtBalance = (exchanges[exchangeId].dtBalance)
@@ -559,27 +557,24 @@ contract FixedRateExchange is ReentrancyGuard, IFixedRateExchange {
559557
.add(fee.publishMarketFeeAmount);
560558
uint256 baseTokenAmountWithFees = fee.baseTokenAmount.add(fee.oceanFeeAmount)
561559
.add(fee.publishMarketFeeAmount).add(fee.consumeMarketFeeAmount);
560+
if (baseTokenAmountWithFees > exchanges[exchangeId].btBalance) {
561+
// not enough baseTokens in fre, bail out
562+
revert("FixedRateExchange: Not enough base tokens");
563+
}
562564
_pullUnderlying(exchanges[exchangeId].datatoken,msg.sender,
563565
address(this),
564566
datatokenAmount);
565567
exchanges[exchangeId].dtBalance = (exchanges[exchangeId].dtBalance).add(
566568
datatokenAmount
567569
);
568-
if (baseTokenAmountWithFees > exchanges[exchangeId].btBalance) {
569-
_pullUnderlying(exchanges[exchangeId].baseToken,exchanges[exchangeId].exchangeOwner,
570-
address(this),
571-
baseTokenAmountWithFees);
572-
IERC20(exchanges[exchangeId].baseToken).safeTransfer(
573-
msg.sender,
574-
fee.baseTokenAmount);
575-
} else {
576-
exchanges[exchangeId].btBalance = (exchanges[exchangeId].btBalance)
570+
571+
exchanges[exchangeId].btBalance = (exchanges[exchangeId].btBalance)
577572
.sub(baseTokenAmountWithFees);
578-
IERC20(exchanges[exchangeId].baseToken).safeTransfer(
573+
IERC20(exchanges[exchangeId].baseToken).safeTransfer(
579574
msg.sender,
580575
fee.baseTokenAmount
581-
);
582-
}
576+
);
577+
583578
if(consumeMarketAddress!= address(0) && fee.consumeMarketFeeAmount>0){
584579
IERC20(exchanges[exchangeId].baseToken).safeTransfer(consumeMarketAddress, fee.consumeMarketFeeAmount);
585580
emit ConsumeMarketFee(
@@ -882,13 +877,7 @@ contract FixedRateExchange is ReentrancyGuard, IFixedRateExchange {
882877
- IERC20Template(exchanges[exchangeId].datatoken).totalSupply();
883878
}
884879
else {
885-
uint256 balance = IERC20Template(exchanges[exchangeId].datatoken)
886-
.balanceOf(exchanges[exchangeId].exchangeOwner);
887-
uint256 allowance = IERC20Template(exchanges[exchangeId].datatoken)
888-
.allowance(exchanges[exchangeId].exchangeOwner, address(this));
889-
if (balance < allowance)
890-
supply = balance.add(exchanges[exchangeId].dtBalance);
891-
else supply = allowance.add(exchanges[exchangeId].dtBalance);
880+
supply = exchanges[exchangeId].dtBalance;
892881
}
893882
}
894883

@@ -906,13 +895,7 @@ contract FixedRateExchange is ReentrancyGuard, IFixedRateExchange {
906895
{
907896
if (exchanges[exchangeId].active == false) supply = 0;
908897
else {
909-
uint256 balance = IERC20Template(exchanges[exchangeId].baseToken)
910-
.balanceOf(exchanges[exchangeId].exchangeOwner);
911-
uint256 allowance = IERC20Template(exchanges[exchangeId].baseToken)
912-
.allowance(exchanges[exchangeId].exchangeOwner, address(this));
913-
if (balance < allowance)
914-
supply = balance.add(exchanges[exchangeId].btBalance);
915-
else supply = allowance.add(exchanges[exchangeId].btBalance);
898+
supply = exchanges[exchangeId].btBalance;
916899
}
917900
}
918901

0 commit comments

Comments
 (0)