Raindrops
  • 🛑!!! Deprecated !!!
  • Introduction (deprecated)
  • Description
    • Basic
    • Advanced
      • Game
      • Item
      • Player
      • Match
      • Staking
  • Quick Start
  • Concepts
    • Class Inheritance Structure
    • SFTs and Inexpensive Gaming
    • Inheritance
    • Propagation
    • Multiple Inheritance
    • Permissions
    • Propagation Permission
    • Namespaces
    • Indexing
  • Guides
    • Overview
    • Create an Item for NFT
  • Contracts
    • Overview
    • Item
      • Merklin'
      • State
      • Components
      • ItemUsages
      • Class Definition
      • Build
      • Item Activation
    • Player
      • Overview
    • Match
      • State
      • Life Cycle
      • Live Example
    • Namespace
      • Overview
    • Staking
      • Overview
Powered by GitBook
On this page
  1. Concepts

Propagation Permission

Permissions can be propagated from a parent class to a child class in either the fashion that overwrites the child array or is additive.

To specify which permissions get propagated, use the child_update_propagation_permissiveness array on the Player or Item classes.

The available options are:

pub struct ChildUpdatePropagationPermissiveness {
    overridable: bool,
    inherited: InheritanceState,
    child_update_propagation_permissiveness_type: ChildUpdatePropagationPermissivenessType,
}

pub enum ChildUpdatePropagationPermissivenessType {
    Usages,
    Components,
    UpdatePermissiveness,
    BuildPermissiveness,
    ChildUpdatePropagationPermissiveness,
    ChildrenMustBeEditionsPermissiveness,
    BuilderMustBeHolderPermissiveness,
    StakingPermissiveness,
    Namespaces,
    FreeBuildPermissiveness,
}

If you change this setting on an ItemClass, a permission-less update_item_class call can be made to the Item contract to enforce this down the ItemClass's inheritance tree.

PreviousPermissionsNextNamespaces

Last updated 2 years ago