diff --git a/packages/zoe/src/contracts/loan/borrow.js b/packages/zoe/src/contracts/loan/borrow.js index 78764cfed76..eb5d05d68a3 100644 --- a/packages/zoe/src/contracts/loan/borrow.js +++ b/packages/zoe/src/contracts/loan/borrow.js @@ -5,7 +5,7 @@ import { assert, details } from '@agoric/assert'; import { E } from '@agoric/eventual-send'; import { makePromiseKit } from '@agoric/promise-kit'; -import { assertProposalShape, trade, natSafeMath } from '../../contractSupport'; +import { assertProposalShape, trade } from '../../contractSupport'; import { scheduleLiquidation } from './scheduleLiquidation'; import { calculateInterest, makeDebtCalculator } from './updateDebt'; @@ -55,9 +55,7 @@ export const makeBorrowInvitation = (zcf, config) => { // Assert the required collateral was escrowed. assert( loanMath.isGTE( - loanMath.make( - natSafeMath.multiply(collateralPriceInLoanBrand.value, 100), - ), + loanMath.make(collateralPriceInLoanBrand.value), mmr.scale(loanWanted), ), details`The required margin is approximately ${approxForMsg.value}% but collateral only had value of ${collateralPriceInLoanBrand.value}`, diff --git a/packages/zoe/test/unitTests/contracts/loan/test-borrow.js b/packages/zoe/test/unitTests/contracts/loan/test-borrow.js index 8d40de0b40b..682a2eddb4a 100644 --- a/packages/zoe/test/unitTests/contracts/loan/test-borrow.js +++ b/packages/zoe/test/unitTests/contracts/loan/test-borrow.js @@ -346,6 +346,19 @@ test('getDebtNotifier with interest', async t => { }); }); +test('borrow collateral just too low', async t => { + const { borrowSeat: borrowSeatGood } = await setupBorrowFacet(75); + const offerResult = await E(borrowSeatGood).getOfferResult(); + const collateralAmount = await E(offerResult).getRecentCollateralAmount(); + t.is(collateralAmount.value, 75); + + const { borrowSeat: borrowSeatBad } = await setupBorrowFacet(74); + await t.throwsAsync(() => E(borrowSeatBad).getOfferResult(), { + message: + 'The required margin is approximately (a number)% but collateral only had value of (a number)', + }); +}); + test.todo('borrow bad proposal'); test.todo('schedule a liquidation that fails, giving collateral to the lender');