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

PreviousInheritanceNextMultiple Inheritance

Last updated 2 years ago

When an ItemClass inherits from another ItemClass, it can be unknown or undefined how any changes to the parent ItemClass should be propagated to the child ItemClass.

Raindrops introduces the concept of permission-less updates(--inheritance-update) to handle this situation.

item-cli update_item_class \
         -k <keypair> \
         --env devnet \
         -cp example-configs/itemClass.json \
         --inheritance-update

This tells the endpoint not to accept any changes to a child ItemClass except for those also present on the parent ItemClass. This means anybody can enforce inheritance at any time across any size tree of inheritance.

item-cli update_item \
         -k <keypair> \
         --env devnet \
         -m DQKJRRHjyiS1DgDuMWtdD2Cy2nbLqEP86sQ8nnBQMv2w \
         -i 10 \
         -cm FKZJRRHjyiS1DgDuMWtdD2Cy2nbLqEP86sQ8nnBQMv2w \
         --inheritance-update

This updates the Item instance with the new ItemUsageStates that may arise from changes in ItemUsages in the parent class.

Similar logic exists for the contract.

Player