Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/SeaportDocumentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ While the standard method can technically be used for fulfilling any order, it s

> Note: When a collection-wide criteria-based item (criteria = 0) is provided as an input to a contract order, the contract offerer has full latitude to choose any identifier they want mid-flight, which differs from the usual behavior. For regular criteria-based orders with identifierOrCriteria = 0, the fulfiller can pick which identifier to receive by providing a CriteriaResolver. For contract offers with identifierOrCriteria = 0, Seaport does not expect a corresponding CriteriaResolver, and will revert if one is provided. See `_getGeneratedOrder` and `_compareItems` for more detail.

> Note: Calls to Seaport that would fulfill or match a collection of advanced orders can be monitored and where there are unused offer items, it's possible for a third party to claim them. Anyone can monitor the mempool to find calls to `fulfillAvailableOrders`, `fulfillAvailableAdvancedOrders`, `matchOrders`, `matchAdvancedOrders` and calculate if there are any unused offer item amounts. If there are unused offer item amounts, the third party can create orders with no offer items, but with consideration items mirroring the unused offer items and populate the fulfillment aggregation data to match the unused offer items with the new mirrored consideration items. This would allow the third party to claim the unused offer items. A contract offerer or a zone could prevent this, but by default, it's possible.

### Balance and Approval Requirements

When creating an offer, the following requirements should be checked to ensure that the order will be fulfillable:
Expand Down