Build and Test

CW-2981 Contract-wide Royalties

An example of porting EIP-2981 to implement royalties at a per-contract level.

Exposes a new query message type:

// Should be called on sale to see if royalties are owed
// by the marketplace selling the NFT.
// See https://eips.ethereum.org/EIPS/eip-2981
RoyaltyInfo {
    token_id: String,
    // the denom of this sale must also be the denom returned by RoyaltiesInfoResponse
    sale_price: Coin,
},

// Called against the contract to signal that CW-2981 is implemented
CheckRoyalties {},

Note that as this is contract-wide, token_id is required but ignored.