From 5c9910d29d4a8b1969684782391910d1c8e03fbe 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 bd93d58..de97458 100644 --- a/contracts/Marketplace.sol +++ b/contracts/Marketplace.sol @@ -135,23 +135,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); } /**