Events
Collection Settings Registry Events
The following events are emitted by the Collection Settings Registry used by creators to configure their collection trading settings.
Payment Methods and Settings Events
/// @notice Emitted when a new payment method whitelist is created
event CreatedPaymentMethodWhitelist(
uint32 indexed paymentMethodWhitelistId,
address indexed whitelistOwner,
string whitelistName);
/// @notice Emitted when a coin is added to the approved coins mapping for a whitelist
event PaymentMethodAddedToWhitelist(
uint32 indexed paymentMethodWhitelistId,
address indexed paymentMethod);
/// @notice Emitted when a coin is removed from the approved coins mapping for a whitelist
event PaymentMethodRemovedFromWhitelist(
uint32 indexed paymentMethodWhitelistId,
address indexed paymentMethod);
/// @notice Emitted when a payment method whitelist is reassigned to a new owner
event ReassignedPaymentMethodWhitelistOwnership(
uint32 indexed id,
address indexed newOwner);
/// @notice Emitted when payment settings are updated for a collection
event UpdatedCollectionPaymentSettings(
address indexed tokenAddress,
CollectionPaymentSettingsParams params);
/// @notice Emitted whenever pricing bounds change at a token level for price-constrained collections.
event UpdatedTokenLevelPricingBoundaries(
address indexed tokenAddress,
uint256 indexed tokenId,
uint256 floorPrice,
uint256 ceilingPrice);
Trusted Channel Events
/// @notice Emitted when a trusted channel is added for a collection
event TrustedChannelAddedForCollection(
address indexed tokenAddress,
address indexed channel);
/// @notice Emitted when a trusted channel is removed for a collection
event TrustedChannelRemovedForCollection(
address indexed tokenAddress,
address indexed channel);
Permit Processor Events
/// @notice Emitted when a permit processor is added to the trusted permit processor list.
event TrustedPermitProcessorAdded(address indexed permitProcessor);
/// @notice Emitted when a permit processor is removed from the trusted permit processor list.
event TrustedPermitProcessorRemoved(address indexed permitProcessor);
Payment Processor Events
Payment Processor emits several indexible events that should be indexed by off-chain order books and analytics platforms.
Fill Or Kill Trade Events
Off-chain order books and analytics platforms can track the following events for trading volume and metrics, as well as trades by user.
/// @notice Emitted when an ERC721 listing is purchased.
event BuyListingERC721(
address indexed buyer,
address indexed seller,
address indexed tokenAddress,
address beneficiary,
address paymentCoin,
uint256 tokenId,
uint256 salePrice);
/// @notice Emitted when an ERC1155 listing is purchased.
event BuyListingERC1155(
address indexed buyer,
address indexed seller,
address indexed tokenAddress,
address beneficiary,
address paymentCoin,
uint256 tokenId,
uint256 amount,
uint256 salePrice);
/// @notice Emitted when an ERC721 offer is accepted.
event AcceptOfferERC721(
address indexed seller,
address indexed buyer,
address indexed tokenAddress,
address beneficiary,
address paymentCoin,
uint256 tokenId,
uint256 salePrice);
/// @notice Emitted when an ERC1155 offer is accepted.
event AcceptOfferERC1155(
address indexed seller,
address indexed buyer,
address indexed tokenAddress,
address beneficiary,
address paymentCoin,
uint256 tokenId,
uint256 amount,
uint256 salePrice);
Partial Fill Trade Events
/// @notice Emitted the first time a partially fillable 1155 order has items filled on-chain.
event OrderDigestOpened(
bytes32 indexed orderDigest,
address indexed account,
uint256 orderStartAmount);
/// @notice Emitted when a user fills items on a partially fillable 1155 listing.
event OrderDigestItemsFilled(
bytes32 indexed orderDigest,
address indexed account,
uint256 amountFilled);
Order Cancellation Events
Off-chain order books SHOULD index the following events to track what orders have been filled or cancelled and which nonces are un-available.
/// @notice Emitted when a user revokes all of their existing listings or offers that share the master nonce.
event MasterNonceInvalidated(
uint256 indexed nonce,
address indexed account);
/// @notice Emitted when a user revokes a single listing or offer nonce for a specific marketplace, or the order
/// filled successfully.
event NonceInvalidated(
uint256 indexed nonce,
address indexed account,
bool wasCancellation);
/// @notice Emitted when a user fills a single listing or offer nonce but item fails to transfer/fill.
event NonceRestored(
uint256 indexed nonce,
address indexed account);
/// @notice Emitted when a user revokes a single permitted listing nonce, or the order filled successfully.
event PermittedOrderNonceInvalidated(
uint256 indexed permitNonce,
uint256 indexed orderNonce,
address indexed account,
bool wasCancellation);
/// @notice Emitted when a user revokes a single partially fillable 1155 listing or offer for a specific marketplace,
/// or a partially fillable order has been completely filled.
event OrderDigestInvalidated(
bytes32 indexed orderDigest,
address indexed account,
bool wasCancellation);
/// @notice Emitted when a user fills a partially fillable 1155 listing or offer but item fails to transfer/fill.
event OrderDigestItemsRestored(
bytes32 indexed orderDigest,
address indexed account,
uint256 amountRestoredToOrder);
Cosigner Events
Off-chain order books SHOULD index the following event to track when a cosigner has been destroyed and filter any open orders that require a cosignature from the cosigner.
/// @notice Emitted when a cosigner destroys itself.
event DestroyedCosigner(address indexed cosigner);
Collection Payment Settings Events
Off-chain order books SHOULD index collection payment settings events to track allowed payment methods, backfilled royalties, and royalty bounties.
/// @notice Emitted when payment settings for a collection are updated.
event UpdatedCollectionPaymentSettings(
address indexed tokenAddress,
PaymentSettings paymentSettings,
uint32 indexed paymentMethodWhitelistId,
address indexed constrainedPricingPaymentMethod,
uint16 royaltyBackfillNumerator,
address royaltyBackfillReceiver,
uint16 royaltyBountyNumerator,
address exclusiveBountyReceiver,
bool blockTradesFromUntrustedChannels,
bool useRoyaltyBackfillAsRoyaltySource);
Custom Payment Method Whitelist Events
Off-chain order books SHOULD index payment method whitelists by id. By doing so, when a collection applies a custom payment method whitelist id, exchanges can be informed about which payment methods are allowed for a give collection.
/// @notice Emitted when a coin is added to the approved coins mapping for a whitelist
event PaymentMethodAddedToWhitelist(
uint32 indexed paymentMethodWhitelistId,
address indexed paymentMethod);
/// @notice Emitted when a coin is removed from the approved coins mapping for a whitelist
event PaymentMethodRemovedFromWhitelist(
uint32 indexed paymentMethodWhitelistId,
address indexed paymentMethod);
Bounded Pricing Events
Off-chain order books SHOULD index pricing bounds events to track min and max allowable sale prices for collections that implement pricing constraints.
/// @notice Emitted whenever pricing bounds change at a collection level for price-constrained collections.
event UpdatedCollectionLevelPricingBoundaries(
address indexed tokenAddress,
uint256 floorPrice,
uint256 ceilingPrice);
/// @notice Emitted whenever pricing bounds change at a token level for price-constrained collections.
event UpdatedTokenLevelPricingBoundaries(
address indexed tokenAddress,
uint256 indexed tokenId,
uint256 floorPrice,
uint256 ceilingPrice);
Trusted Channel Events
Off-chain order books SHOULD index trusted channel events to be used in conjunction with the
Collection Payment Settings Events to determine the allowed
channels for a collection if blockTradesFromUntrustedChannels is set to true.
/// @notice Emitted when a trusted channel is added for a collection
event TrustedChannelAddedForCollection(
address indexed tokenAddress,
address indexed channel);
/// @notice Emitted when a trusted channel is removed for a collection
event TrustedChannelRemovedForCollection(
address indexed tokenAddress,
address indexed channel);
Permit Processor Events
/// @notice Emitted when a permit processor is added to the trusted permit processor list.
event TrustedPermitProcessorAdded(address indexed permitProcessor);
/// @notice Emitted when a permit processor is removed from the trusted permit processor list.
event TrustedPermitProcessorRemoved(address indexed permitProcessor);
Protocol Fee Events
/// @notice Emitted when protocol fees are updated.
event ProtocolFeesUpdated(
address indexed newProtocolFeeRecipient,
uint16 minimumProtocolFeeBps,
uint16 marketplaceFeeProtocolTaxBps,
uint16 feeOnTopProtocolTaxBps,
uint48 gracePeriodExpiration);
