marketplace: optimize storage reads and writes

This commit is contained in:
Mark Spanbroek 2025-02-27 08:42:19 +01:00
parent 5e8031eda5
commit 5c9910d29d

View File

@ -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);
}
/**