Skip to content

Create a non-rewardable property #799

Description

@aggre

Description

Create a Property that cannot be staked for those who do not need inflationary funds.

Solution

Add new interfaces createWithNonRewardable and createAndAuthenticateWithNonRewardable to the PropertyFactory Contract. It also adds new interfaces isNonRewardable and setNonRewardable to the PropertyGroup Contract.

For Properties created by those PropertyFactory Contract's interfaces, the return values of PropertyGroup.isGroup and PropertyGroup.isNonRewardable will be true.
If PropertyGroup.isNonRewardable is true, no one can stake on that Property.

Alternatives/Features

With Iron Contract and Ironed Property tokens

Create a new contract called "Iron Contract" without modifying the PropertyFactory Contract and PropertyGroup Contract. The Iron Contract receives Property tokens and returns an Ironed Property tokens. An Ironed Property tokens are tokens associated with one Property. Iron Contract does not withdraw inflationary funds for Property tokens. As a result, users can refuse to receive inflationary funds.

This idea is flexible and versatile, but it creates two types of tokens for a single Property. This can also compromise usability.

Code of Conduct

By submitting this pull request, I confirm I've read and complied with the CoC 🖖

Activity

  1. Omcodes23 commented on Mar 2, 2026

    @Omcodes23

    🤖 Crawly Smart Analysis

    Analysis

    The issue proposes adding new interfaces to PropertyFactory and PropertyGroup contracts to allow for the creation of non-rewardable properties. The goal is to prevent staking on such properties for those who do not need inflationary funds.

    Likely Root Cause

    The root cause seems to be the desire to introduce a mechanism to control staking based on whether a property needs inflationary funds or not. This requires modifying existing contracts without breaking their current functionality and ensuring that new features are safe and non-breaking.

    Fix Plan

    1. Create New Interfaces in PropertyFactory Contract

      • Add createWithNonRewardable and createAndAuthenticateWithNonRewardable methods.
    2. Modify PropertyGroup Contract

      • Add isNonRewardable and setNonRewardable methods.
      • Ensure that these methods interact correctly with existing functionality.
    3. Update Documentation

      • Document the new interfaces and their usage to avoid confusion for other developers.

    Confidence Score

    confidence: 0.8

    The proposed solution is clear and logical, but it requires careful implementation to ensure that existing functionalities are not broken. The confidence score reflects a high level of certainty in the general approach while acknowledging potential risks.

    Suggested Target File Path

    file_path: contracts/PropertyFactory.sol
    file_path: contracts/PropertyGroup.sol

    These paths suggest where the new interfaces and methods should be implemented based on their logical association with the existing contracts.

    Memory key: dev-protocol/protocol#799:2021-04-19T06:52:30+00:00

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions