From f32974b496be434ec3441478ada245213680484c Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Wed, 20 Jul 2022 10:12:48 +0200 Subject: [PATCH] [marketplace] Remove fulfillRequest() --- contracts/Marketplace.sol | 30 ----------------- test/Marketplace.test.js | 70 --------------------------------------- 2 files changed, 100 deletions(-) diff --git a/contracts/Marketplace.sol b/contracts/Marketplace.sol index e4d570d..8711998 100644 --- a/contracts/Marketplace.sol +++ b/contracts/Marketplace.sol @@ -9,7 +9,6 @@ contract Marketplace is Collateral, Proofs { uint256 public immutable collateral; MarketplaceFunds private funds; mapping(bytes32 => Request) private requests; - mapping(bytes32 => RequestState) private requestState; mapping(bytes32 => Slot) private slots; constructor( @@ -86,31 +85,6 @@ contract Marketplace is Collateral, Proofs { require(token.transfer(slot.host, amount), "Payment failed"); } - function fulfillRequest(bytes32 requestId, bytes calldata proof) - public - marketplaceInvariant - { - RequestState storage state = requestState[requestId]; - require(state.host == address(0), "Request already fulfilled"); - - Request storage request = requests[requestId]; - require(request.client != address(0), "Unknown request"); - require(request.expiry > block.timestamp, "Request expired"); - - require(balanceOf(msg.sender) >= collateral, "Insufficient collateral"); - _lock(msg.sender, requestId); - - _expectProofs( - requestId, - request.ask.proofProbability, - request.ask.duration - ); - _submitProof(requestId, proof); - - state.host = msg.sender; - emit RequestFulfilled(requestId); - } - function _host(bytes32 slotId) internal view returns (address) { return slots[slotId].host; } @@ -164,10 +138,6 @@ contract Marketplace is Collateral, Proofs { bytes name; // random name } - struct RequestState { - address host; - } - struct Slot { address host; bool hostPaid; diff --git a/test/Marketplace.test.js b/test/Marketplace.test.js index 4c3489d..91076cc 100644 --- a/test/Marketplace.test.js +++ b/test/Marketplace.test.js @@ -231,74 +231,4 @@ describe("Marketplace", function () { }) }) - describe("fulfilling request", function () { - const proof = hexlify(randomBytes(42)) - - beforeEach(async function () { - switchAccount(client) - await token.approve(marketplace.address, request.ask.reward) - await marketplace.requestStorage(request) - switchAccount(host) - await token.approve(marketplace.address, collateral) - await marketplace.deposit(collateral) - }) - - it("emits event when request is fulfilled", async function () { - await expect(marketplace.fulfillRequest(requestId(request), proof)) - .to.emit(marketplace, "RequestFulfilled") - .withArgs(requestId(request)) - }) - - it("locks collateral of host", async function () { - await marketplace.fulfillRequest(requestId(request), proof) - await expect(marketplace.withdraw()).to.be.revertedWith("Account locked") - }) - - it("starts requiring storage proofs", async function () { - await marketplace.fulfillRequest(requestId(request), proof) - expect(await marketplace.proofEnd(requestId(request))).to.be.gt(0) - }) - - it("is rejected when proof is incorrect", async function () { - let invalid = hexlify([]) - await expect( - marketplace.fulfillRequest(requestId(request), invalid) - ).to.be.revertedWith("Invalid proof") - }) - - it("is rejected when collateral is insufficient", async function () { - let insufficient = collateral - 1 - await marketplace.withdraw() - await token.approve(marketplace.address, insufficient) - await marketplace.deposit(insufficient) - await expect( - marketplace.fulfillRequest(requestId(request), proof) - ).to.be.revertedWith("Insufficient collateral") - }) - - it("is rejected when request already fulfilled", async function () { - await marketplace.fulfillRequest(requestId(request), proof) - await expect( - marketplace.fulfillRequest(requestId(request), proof) - ).to.be.revertedWith("Request already fulfilled") - }) - - it("is rejected when request is unknown", async function () { - let unknown = exampleRequest() - await expect( - marketplace.fulfillRequest(requestId(unknown), proof) - ).to.be.revertedWith("Unknown request") - }) - - it("is rejected when request is expired", async function () { - switchAccount(client) - let expired = { ...request, expiry: now() - hours(1) } - await token.approve(marketplace.address, request.ask.reward) - await marketplace.requestStorage(expired) - switchAccount(host) - await expect( - marketplace.fulfillRequest(requestId(expired), proof) - ).to.be.revertedWith("Request expired") - }) - }) })