From b2f9e07c564b27b059e1e6b14fb0ebc0a19e5053 Mon Sep 17 00:00:00 2001 From: Eric Mastro Date: Tue, 25 Oct 2022 13:00:48 +1100 Subject: [PATCH] [marketplace] add list of active requests --- contracts/Marketplace.sol | 5 +++++ test/Marketplace.test.js | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/contracts/Marketplace.sol b/contracts/Marketplace.sol index 95adb59..ec6a907 100644 --- a/contracts/Marketplace.sol +++ b/contracts/Marketplace.sol @@ -15,6 +15,7 @@ contract Marketplace is Collateral, Proofs { mapping(RequestId => Request) private requests; mapping(RequestId => RequestContext) private requestContexts; mapping(SlotId => Slot) private slots; + mapping(address => RequestId[]) private activeRequests; constructor( IERC20 _token, @@ -30,6 +31,10 @@ contract Marketplace is Collateral, Proofs { collateral = _collateral; } + function myRequests() public view returns (RequestId[] memory) { + return activeRequests[msg.sender]; + } + function requestStorage(Request calldata request) public marketplaceInvariant diff --git a/test/Marketplace.test.js b/test/Marketplace.test.js index 37d323c..e42a5ee 100644 --- a/test/Marketplace.test.js +++ b/test/Marketplace.test.js @@ -84,6 +84,12 @@ describe("Marketplace", function () { .withArgs(requestId(request), askToArray(request.ask)) }) + it("adds request to list of active requests", async function () { + await token.approve(marketplace.address, price(request)) + await marketplace.requestStorage(request) + expect(await marketplace.myRequests()).to.deep.equal([requestId(request)]) + }) + it("rejects request with invalid client address", async function () { let invalid = { ...request, client: host.address } await token.approve(marketplace.address, price(invalid))