diff --git a/contracts/Marketplace.sol b/contracts/Marketplace.sol index 4641854..21aa466 100644 --- a/contracts/Marketplace.sol +++ b/contracts/Marketplace.sol @@ -95,6 +95,7 @@ contract Marketplace is Proofs, StateRetrieval, Endian { request.expiry > 0 && request.expiry < request.ask.duration, "Expiry not in range" ); + require(request.ask.slots > 0, "Insufficient slots"); require( request.ask.maxSlotLoss <= request.ask.slots, "maxSlotLoss exceeds slots" diff --git a/test/Marketplace.test.js b/test/Marketplace.test.js index 3ffff93..3b4f1a9 100644 --- a/test/Marketplace.test.js +++ b/test/Marketplace.test.js @@ -211,6 +211,13 @@ describe("Marketplace", function () { ) }) + it("is rejected with insufficient slots ", async function () { + request.ask.slots = 0 + await expect(marketplace.requestStorage(request)).to.be.revertedWith( + "Insufficient slots" + ) + }) + it("is rejected when maxSlotLoss exceeds slots", async function () { request.ask.maxSlotLoss = request.ask.slots + 1 await expect(marketplace.requestStorage(request)).to.be.revertedWith(