mirror of
https://github.com/status-im/dagger-contracts.git
synced 2025-02-06 19:53:23 +00:00
list active sales
This commit is contained in:
parent
a4057d712f
commit
5b6187afc4
@ -19,6 +19,7 @@ contract Marketplace is Collateral, Proofs {
|
|||||||
mapping(RequestId => RequestContext) private requestContexts;
|
mapping(RequestId => RequestContext) private requestContexts;
|
||||||
mapping(SlotId => Slot) private slots;
|
mapping(SlotId => Slot) private slots;
|
||||||
mapping(address => EnumerableSet.Bytes32Set) private activeRequests;
|
mapping(address => EnumerableSet.Bytes32Set) private activeRequests;
|
||||||
|
mapping(address => EnumerableSet.Bytes32Set) private activeSlots;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
IERC20 _token,
|
IERC20 _token,
|
||||||
@ -38,6 +39,10 @@ contract Marketplace is Collateral, Proofs {
|
|||||||
return _toRequestIds(activeRequests[msg.sender].values());
|
return _toRequestIds(activeRequests[msg.sender].values());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mySlots() public view returns (SlotId[] memory) {
|
||||||
|
return _toSlotIds(activeSlots[msg.sender].values());
|
||||||
|
}
|
||||||
|
|
||||||
function requestStorage(Request calldata request)
|
function requestStorage(Request calldata request)
|
||||||
public
|
public
|
||||||
marketplaceInvariant
|
marketplaceInvariant
|
||||||
@ -89,6 +94,7 @@ contract Marketplace is Collateral, Proofs {
|
|||||||
slot.requestId = requestId;
|
slot.requestId = requestId;
|
||||||
RequestContext storage context = _context(requestId);
|
RequestContext storage context = _context(requestId);
|
||||||
context.slotsFilled += 1;
|
context.slotsFilled += 1;
|
||||||
|
activeSlots[request.client].add(SlotId.unwrap(slotId));
|
||||||
emit SlotFilled(requestId, slotIndex, slotId);
|
emit SlotFilled(requestId, slotIndex, slotId);
|
||||||
if (context.slotsFilled == request.ask.slots) {
|
if (context.slotsFilled == request.ask.slots) {
|
||||||
context.state = RequestState.Started;
|
context.state = RequestState.Started;
|
||||||
@ -347,6 +353,17 @@ contract Marketplace is Collateral, Proofs {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _toSlotIds(bytes32[] memory array)
|
||||||
|
private
|
||||||
|
pure
|
||||||
|
returns (SlotId[] memory result)
|
||||||
|
{
|
||||||
|
// solhint-disable-next-line no-inline-assembly
|
||||||
|
assembly {
|
||||||
|
result := array
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _toSlotId(RequestId requestId, uint256 slotIndex)
|
function _toSlotId(RequestId requestId, uint256 slotIndex)
|
||||||
internal
|
internal
|
||||||
pure
|
pure
|
||||||
|
Loading…
x
Reference in New Issue
Block a user