Skip to content

Allow owners to change their subnet symbol#1770

Merged
sam0x17 merged 41 commits intodevnet-readyfrom
feat/dynamic-symbol
Jul 2, 2025
Merged

Allow owners to change their subnet symbol#1770
sam0x17 merged 41 commits intodevnet-readyfrom
feat/dynamic-symbol

Conversation

@l0r1s
Copy link
Collaborator

@l0r1s l0r1s commented Jun 19, 2025

Description

Allow the subnet owner (and root) to change the subnet symbol if it exists and is not already in use.

During subnet creation, the next available symbol is determined by checking if the symbol for the given subnet ID is available. If it is not, the system iterates through the symbol list to find the next available one. If no symbols are available because the list is exhausted, the default symbol is used until the symbol list is extended.

Additionally, the symbol list is refactored to be static.

Related Issue(s)

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Other (please describe):

Breaking Change

If this PR introduces a breaking change, please provide a detailed description of the impact and the migration path for existing applications.

Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have run cargo fmt and cargo clippy to ensure my code is formatted and linted correctly
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Screenshots (if applicable)

Please include any relevant screenshots or GIFs that demonstrate the changes made.

Additional Notes

Please provide any additional information or context that may be helpful for reviewers.

@l0r1s l0r1s added the skip-cargo-audit This PR fails cargo audit but needs to be merged anyway label Jun 20, 2025
@l0r1s l0r1s marked this pull request as ready for review June 20, 2025 15:34
Copy link
Collaborator

@shamil-gadelshin shamil-gadelshin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I left a couple of minor questions.

return Err(Error::<T>::SymbolDoesNotExist.into());
}

let used_symbols = TokenSymbol::<T>::iter_values().collect::<Vec<_>>();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the second unbounded iteration here. @gregzaitsev Do we care about weights optimizations here?

Copy link
Collaborator Author

@l0r1s l0r1s Jun 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bound is the number of subnet for this loop, for the other loop, this is the number of symbols. It's not perfect but the call is only allowed to subnet owner and root so this seems safe enough to me.

JohnReedV
JohnReedV previously approved these changes Jun 30, 2025
@sam0x17 sam0x17 merged commit 54da146 into devnet-ready Jul 2, 2025
53 of 54 checks passed
@sam0x17 sam0x17 mentioned this pull request Jul 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-cargo-audit This PR fails cargo audit but needs to be merged anyway

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants