Skip to content

Commit

Permalink
Merge pull request #171 from mysofinance/peer-to-pool-zero-amount-fixes
Browse files Browse the repository at this point in the history
fixed zero input amounts
  • Loading branch information
jpick713 authored Apr 13, 2023
2 parents 3b9b9fc + 3080fd9 commit 7755e69
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 7 deletions.
1 change: 1 addition & 0 deletions contracts/Errors.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ library Errors {
error InvalidOffChainSignature();
error InvalidOffChainMerkleProof();
error InvalidCollUnlock();
error InvalidAmount();
error UnknownOnChainQuote();
error NeitherTokenIsGOHM();
error NoLpTokens();
Expand Down
2 changes: 0 additions & 2 deletions contracts/peer-to-pool/DataTypesPeerToPool.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ library DataTypesPeerToPool {
uint128 collTokenDueIfConverted;
// Timestamp when repayment is due
uint40 dueTimestamp;
// Flag whether given period is considered repaid
bool repaid;
}

struct LoanTerms {
Expand Down
11 changes: 10 additions & 1 deletion contracts/peer-to-pool/FundingPool.sol
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ contract FundingPool is IFundingPool {
}

function deposit(uint256 amount, uint256 transferFee) external {
if (amount == 0) {
revert Errors.InvalidSendAmount();
}
uint256 preBal = IERC20Metadata(depositToken).balanceOf(address(this));
IERC20Metadata(depositToken).safeTransferFrom(
msg.sender,
Expand All @@ -44,14 +47,17 @@ contract FundingPool is IFundingPool {
}

function withdraw(uint256 amount) external {
if (amount > balanceOf[msg.sender]) {
if (amount == 0 || amount > balanceOf[msg.sender]) {
revert Errors.InvalidWithdrawAmount();
}
balanceOf[msg.sender] -= amount;
IERC20Metadata(depositToken).safeTransfer(msg.sender, amount);
}

function subscribe(address loanProposal, uint256 amount) external {
if (amount == 0) {
revert Errors.InvalidAmount();
}
if (
!ILoanProposalFactory(loanProposalFactory).isLoanProposal(
loanProposal
Expand Down Expand Up @@ -82,6 +88,9 @@ contract FundingPool is IFundingPool {
}

function unsubscribe(address loanProposal, uint256 amount) external {
if (amount == 0) {
revert Errors.InvalidAmount();
}
if (
!ILoanProposalFactory(loanProposalFactory).isLoanProposal(
loanProposal
Expand Down
4 changes: 0 additions & 4 deletions test/peer-to-pool/local-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1739,10 +1739,6 @@ describe('Peer-to-Pool: Local Tests', function () {
dynamicData = await loanProposal.dynamicData()
expect(dynamicData.currentRepaymentIdx).to.be.equal(0)

// check that repayment is not marked as repaid
const preRepayLoanTermsState = await loanProposal.loanTerms()
expect(preRepayLoanTermsState.repaymentSchedule[0].repaid).to.be.false

// approve and repay
let totalConvertedSubscriptionsOfPeriod = await loanProposal.totalConvertedSubscriptionsPerIdx(0)
let originalRepaymentAmountDue = finalLoanTerms.repaymentSchedule[0].loanTokenDue
Expand Down

0 comments on commit 7755e69

Please sign in to comment.