Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: r/demo/users #3166

Open
wants to merge 138 commits into
base: master
Choose a base branch
from
Open

refactor: r/demo/users #3166

wants to merge 138 commits into from

Conversation

leohhhn
Copy link
Contributor

@leohhhn leohhhn commented Nov 20, 2024

Description

Addresses: #2827

This PR refactors the current r/demo/users & r/sys/users system in accordance to the issue mentioned above. Below is the high-level overview.

r/gnoland/users/v1

  • Fully replaces r/demo/users
  • Is the main entry point for users looking to register a name, create an alias (rename themselves), or delete their username
  • Implements allowed username pattern checks as per the issue r/sys/users Mainnet v1 (mvp) & v2 #2827
  • Is pausable by GovDAO, contains no other administration functionality
  • Contains a nice UI/render for users (please suggest improvements) - see bottom
  • Uses r/demo/profile for displaying extra information about a user

r/sys/users

  • Namespace check moved to r/sys/names
  • Contains the address/name <> user stores, to which only whitelisted realms can write
  • Contains resolver functions & other useful getters
  • Is callable only by whitelisted realms, such as r/gnoland/users/v1, etc. Whitelist is managed by an ownable object
  • Is ownable+pausable until chore: remove govdao dependency in r/gov/dao/bridge #3523 is resolved so that GovDAO can be the sole owner of the realm, and can manage the whitelist & pausability

r/sys/names

  • Functionality moved here, added tests
  • Verify function now only upgradeable with a GovDAO prop instead of previously being ownable
  • Verify functionality is now not pausable and on by default, as per discussions with @moul. This means Portal Loop will need to be patched upon merging this PR, as many txs will fail due to not having proper namespace permissions.

Keeper

  • Updated the VM keeper to call r/sys/names for the namespace check instead of r/sys/users

r/gnoland/users/v1

Screenshot 2025-01-17 at 01 10 56

Contributors' checklist...
  • Added new tests, or not needed, or not feasible
  • Provided an example (e.g. screenshot) to aid review or the PR is self-explanatory
  • Updated the official documentation or not needed
  • No breaking changes were made, or a BREAKING CHANGE: xxx message was included in the description
  • Added references to related issues and PRs
  • Provided any useful hints for running manual tests

@github-actions github-actions bot added the 🧾 package/realm Tag used for new Realms or Packages. label Nov 20, 2024
Copy link

codecov bot commented Nov 21, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

@zivkovicmilos zivkovicmilos self-requested a review November 21, 2024 06:03
@leohhhn leohhhn changed the title refactor: r/demo/users refactor: r/demo/users Nov 21, 2024
@github-actions github-actions bot added 📦 🤖 gnovm Issues or PRs gnovm related 📦 🌐 tendermint v2 Issues or PRs tm2 related 📦 ⛰️ gno.land Issues or PRs gno.land package related labels Nov 25, 2024
# Conflicts:
#	examples/gno.land/r/demo/users/users.gno
#	examples/gno.land/r/demo/users/z_10_filetest.gno
#	examples/gno.land/r/demo/users/z_11_filetest.gno
#	examples/gno.land/r/demo/users/z_11b_filetest.gno
#	examples/gno.land/r/demo/users/z_2_filetest.gno
#	examples/gno.land/r/demo/users/z_3_filetest.gno
#	examples/gno.land/r/demo/users/z_4_filetest.gno
#	examples/gno.land/r/demo/users/z_5_filetest.gno
#	examples/gno.land/r/demo/users/z_6_filetest.gno
#	examples/gno.land/r/demo/users/z_7_filetest.gno
#	examples/gno.land/r/demo/users/z_7b_filetest.gno
#	examples/gno.land/r/demo/users/z_8_filetest.gno
#	examples/gno.land/r/demo/users/z_9_filetest.gno
#	examples/gno.land/r/sys/users/verify.gno
@leohhhn
Copy link
Contributor Author

leohhhn commented Jan 17, 2025

Ready for review, apart from some unrelated failing txtars, and the gno lint issue.

Fixing txtars, but opening up for reviews.

@moul

Do I need to update what r/sys/params stores somehow, somewhere (apart from what I did in the keeper), since the namespace checking functionality has been moved to r/sys/names?

TODO:

  • Fix tests in gno.land/

@leohhhn leohhhn marked this pull request as ready for review January 17, 2025 00:41
@leohhhn leohhhn requested a review from moul January 17, 2025 00:41
@moul
Copy link
Member

moul commented Jan 17, 2025

Regarding govdao bridge deployment order.

We’ll maybe change the pattern, but with the current one, deployment order should be fixed dimly by having a proposal contract that import both the bridge and v1 impl and register it. This way it will be done automatically during block 0 with no risk.

@leohhhn
Copy link
Contributor Author

leohhhn commented Jan 17, 2025

Will add GovDAO as sole admin of r/sys/users if #3523 is merged. It was modified as you suggested @moul

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦 🌐 tendermint v2 Issues or PRs tm2 related 📦 ⛰️ gno.land Issues or PRs gno.land package related 📦 🤖 gnovm Issues or PRs gnovm related 🧾 package/realm Tag used for new Realms or Packages.
Projects
Status: 📥 Inbox
Status: In Review
Development

Successfully merging this pull request may close these issues.

r/sys/users Mainnet v1 (mvp) & v2
6 participants