From 09a3cbcb094c8748be686e122a68aa76eeb8b0b1 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Thu, 27 Feb 2025 08:42:19 +0100 Subject: [PATCH] marketplace: optimize storage reads and writes --- contracts/Marketplace.sol | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/contracts/Marketplace.sol b/contracts/Marketplace.sol index c5ce0ec..389a814 100644 --- a/contracts/Marketplace.sol +++ b/contracts/Marketplace.sol @@ -134,23 +134,25 @@ contract Marketplace is SlotReservations, Proofs, StateRetrieval, Endian { } Timestamp currentTime = Timestamps.currentTime(); + Timestamp expiresAt = currentTime.add(request.expiry); + Timestamp endsAt = currentTime.add(request.ask.duration); _requests[id] = request; - _requestContexts[id].endsAt = currentTime.add(request.ask.duration); - _requestContexts[id].expiresAt = currentTime.add(request.expiry); + _requestContexts[id] = RequestContext({ + state: RequestState.New, + slotsFilled: 0, + endsAt: endsAt, + expiresAt: expiresAt + }); _addToMyRequests(request.client, id); FundId fund = id.asFundId(); AccountId account = _vault.clientAccount(request.client); - _vault.lock( - fund, - _requestContexts[id].expiresAt, - _requestContexts[id].endsAt - ); + _vault.lock(fund, expiresAt, endsAt); _transferToVault(request.client, fund, account, request.maxPrice()); - emit StorageRequested(id, request.ask, _requestContexts[id].expiresAt); + emit StorageRequested(id, request.ask, expiresAt); } /**