From bdee8de9ccc9d784b0b1c7ae77c17247a92d44fb Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Tue, 27 May 2025 12:46:23 +0200 Subject: [PATCH] marketplace: move collateralPerSlot() to Requests.sol MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit reason: the function only depends on the request, and it is similar to the pricePerSlotPerSecond function Co-Authored-By: Adam Uhlíř --- contracts/Marketplace.sol | 6 +++--- contracts/Requests.sol | 4 ++++ contracts/marketplace/Collateral.sol | 6 ------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/contracts/Marketplace.sol b/contracts/Marketplace.sol index 89d4137..c90b4cc 100644 --- a/contracts/Marketplace.sol +++ b/contracts/Marketplace.sol @@ -209,7 +209,7 @@ contract Marketplace is SlotReservations, Proofs, StateRetrieval, Endian { AccountId hostAccount = _vault.hostAccount(slot.host, slotIndex); TokensPerSecond rate = request.ask.pricePerSlotPerSecond(); - uint128 collateral = request.collateralPerSlot(); + uint128 collateral = request.ask.collateralPerSlot(); uint128 designated = _config.collateral.designatedCollateral(collateral); if (slotState(slotId) == SlotState.Repair) { @@ -327,7 +327,7 @@ contract Marketplace is SlotReservations, Proofs, StateRetrieval, Endian { Slot storage slot = _slots[slotId]; Request storage request = _requests[slot.requestId]; - uint128 collateral = request.collateralPerSlot(); + uint128 collateral = request.ask.collateralPerSlot(); uint128 slashedAmount = _config.collateral.slashAmount(collateral); uint128 validatorReward = _config.collateral.validatorReward(slashedAmount); @@ -355,7 +355,7 @@ contract Marketplace is SlotReservations, Proofs, StateRetrieval, Endian { Request storage request = _requests[requestId]; TokensPerSecond rate = request.ask.pricePerSlotPerSecond(); - uint128 collateral = request.collateralPerSlot(); + uint128 collateral = request.ask.collateralPerSlot(); uint128 repairReward = _config.collateral.repairReward(collateral); FundId fund = requestId.asFundId(); diff --git a/contracts/Requests.sol b/contracts/Requests.sol index 0895b1f..5bb9a81 100644 --- a/contracts/Requests.sol +++ b/contracts/Requests.sol @@ -63,6 +63,10 @@ library AskHelpers { uint96 perSlot = TokensPerSecond.unwrap(ask.pricePerSlotPerSecond()); return TokensPerSecond.wrap(perSlot * ask.slots); } + + function collateralPerSlot(Ask memory ask) internal pure returns (uint128) { + return ask.collateralPerByte * ask.slotSize; + } } library Requests { diff --git a/contracts/marketplace/Collateral.sol b/contracts/marketplace/Collateral.sol index f6e4956..5c091a4 100644 --- a/contracts/marketplace/Collateral.sol +++ b/contracts/marketplace/Collateral.sol @@ -25,12 +25,6 @@ library Collateral { ); } - function collateralPerSlot( - Request storage request - ) internal view returns (uint128) { - return request.ask.collateralPerByte * request.ask.slotSize; - } - function slashAmount( CollateralConfig storage configuration, uint128 collateral