Tracks active listings across various marketplace mechanisms.
mapping(bytes32 => Listing) public listings;
mapping(bytes32 => TokenReference[]) public listingTokens;
function addListing(
bytes32 listingId,
address seller,
address asset,
TokenReference[] calldata lotsData,
uint256 price,
string calldata marketType
) external;
function removeListing(bytes32 listingId) external;
function getListing(bytes32 listingId) external view returns (Listing memory);
function getListingTokens(bytes32 listingId) external view returns (TokenReference[] memory);
event ListingAdded(
bytes32 indexed listingId,
address indexed seller,
address indexed asset,
uint96 totalQuantity,
uint256 price,
string marketType
);
event ListingRemoved(bytes32 indexed listingId);
struct Listing {
bytes32 listingId;
address seller;
address asset;
uint96 totalQuantity;
uint256 price;
uint256 timestamp;
string marketType;
}
struct TokenReference {
bytes32 tokenId;
uint96 quantity;
}