MarketplaceZone
Inherits: ZoneInterface, IMarketplaceZone
Title: MarketplaceZone
Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from Seaport (https://github.com/ProjectOpenSea/seaport)
Seaport 1.6 zone facet. The Diamond acts as the zone for RESTRICTED orders trading its tokens,
authorizing them only when policy holds: not paused, offerer/fulfiller not blocked, and the
ERC-2981 royalty present for opt-in collections.
Stateless delegator — logic/storage live in MarketplaceZoneLib. authorizeOrder enforces pause +
blocklist (pre-fulfillment, skippable); validateOrder enforces royalties (post-fulfillment, final
amounts). Each returns its own selector as Seaport's magic value, else reverts. v1 of #25 — the
ContractOffererInterface (AMM-priced orders) facet is a separate v2 deliverable.
Notes:
- lattice-version: 0.1.0
- lattice-source: Seaport
Functions
authorizeOrder
Called before any transfers. Return authorizeOrder.selector (0x01e4d72a) to authorize.
function authorizeOrder(ZoneParameters calldata zoneParameters) external virtual returns (bytes4);Parameters
| Name | Type | Description |
|---|---|---|
| zoneParameters | ZoneParameters |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bytes4 |
validateOrder
Called after all transfers. Return validateOrder.selector (0x17b1f942) to validate.
function validateOrder(ZoneParameters calldata zoneParameters) external virtual returns (bytes4);Parameters
| Name | Type | Description |
|---|---|---|
| zoneParameters | ZoneParameters |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bytes4 |
getSeaportMetadata
SIP introspection: the zone's name + supported schemas.
function getSeaportMetadata() external view virtual returns (string memory name, Schema[] memory schemas);Returns
| Name | Type | Description |
|---|---|---|
| name | string | |
| schemas | Schema[] |
zonePaused
Whether the zone is paused. (Named zonePaused to avoid the Pausable facet's paused() selector.)
function zonePaused() external view virtual returns (bool);Returns
| Name | Type | Description |
|---|---|---|
| <none> | bool |
isRoyaltyRequired
Whether collection requires its ERC-2981 royalty to be present in the order's consideration.
function isRoyaltyRequired(address collection) external view virtual returns (bool);Parameters
| Name | Type | Description |
|---|---|---|
| collection | address |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bool |
blockedRole
The role that blocks an address from being an order's offerer or fulfiller.
function blockedRole() external pure virtual returns (bytes32);Returns
| Name | Type | Description |
|---|---|---|
| <none> | bytes32 |
setPaused
Sets the global pause flag. Admin only.
function setPaused(bool paused_) external virtual;Parameters
| Name | Type | Description |
|---|---|---|
| paused_ | bool |
setRoyaltyRequired
Toggles ERC-2981 royalty enforcement for collection. Admin only.
function setRoyaltyRequired(address collection, bool required) external virtual;Parameters
| Name | Type | Description |
|---|---|---|
| collection | address | |
| required | bool |
exportSelectors
ERC-8153 selector export: this facet's cuttable selectors, tightly packed (4 bytes each).
Excludes exportSelectors() itself (0x0ef22643) - it is never cut into a diamond. Order matches
forge inspect MarketplaceZone methodIdentifiers (alphabetical by signature); kept in exact parity by
ExportSelectorsParityTest. Chunks:
authorizeOrder((bytes32,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[],bytes,bytes32[],uint256,uint256,bytes32)) 0x01e4d72a
blockedRole() 0x1a5194be
getSeaportMetadata() 0x2e778efc
isRoyaltyRequired(address) 0x50dacc83
setPaused(bool) 0x16c38b3c
setRoyaltyRequired(address,bool) 0xd98a7d79
validateOrder((bytes32,address,address,(uint8,address,uint256,uint256)[],(uint8,address,uint256,uint256,address)[],bytes,bytes32[],uint256,uint256,bytes32)) 0x17b1f942
zonePaused() 0x1a405ea4
function exportSelectors() external pure virtual returns (bytes memory selectors);Returns
| Name | Type | Description |
|---|---|---|
| selectors | bytes |