BUK Royalty

BukRoyalties Contract

The BukRoyalties contract is a Solidity smart contract designed to manage the royalty system for the Buk Protocol. It provides functionalities to set and retrieve royalty information for various entities involved in the protocol.

Overview

The contract is designed with the following key components:

  • Roles: Uses the AccessControl library from OpenZeppelin to manage roles.

  • Royalty Struct: A struct to capture the details of each royalty.

  • Royalty Arrays: Arrays to store different types of royalties.

Features

  • Role-based Access: Different functionalities accessible by users with the ADMIN_ROLE.

  • Royalty Management: Functions to set and retrieve royalty information for Buk, Asset Owners (game developers, event organizers, hotels, airlines etc.), First Owners (first user to mint Asset on-chain), and other entities.

Functions

Public and External Functions:

  • setBukProtocolContract: Sets the Buk Protocol address.

  • setBukRoyaltyInfo: Defines the royalty fraction for Buk.

  • setAssetOwnerRoyaltyInfo: Defines the royalty fraction for the Asset Owner (game developers, event organizers, hotels, airlines etc.).

  • setFirstOwnerRoyaltyInfo: Defines the royalty fraction for the First Owners (creator / first user to mint dAsset).

  • setOtherRoyaltyInfo: Defines the royalties for other entities.

  • getRoyaltyInfo: Retrieves royalty information for a given token ID.

Events

  • SetBukProtocol: Emitted when the Buk Protocol address is updated.

  • SetBukRoyalty: Emitted when the Buk royalty is updated.

  • SetAssetOwnerRoyalty: Emitted when the Asset Owner royalty is updated.

  • SetFirstOwnerRoyalty: Emitted when the First Owner royalty is updated.

  • SetOtherRoyalties: Emitted when other royalties are updated.

Interface: IBukRoyalties

The contract also defines an interface IBukRoyalties which outlines the expected structure and functions for the BukRoyalties contract. The interface includes:

  • Royalty Struct: A struct to capture the details of each royalty.

  • Events: Events related to updating the Buk Protocol address and setting royalties.

  • Functions: Functions to set the Buk Protocol address, define royalty fractions, and retrieve royalty information.

License

This project is licensed under the MIT License.

Last updated