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

Allow permissionless denom allowlisting #2298

Closed
insumity opened this issue Sep 20, 2024 · 0 comments · Fixed by #2309
Closed

Allow permissionless denom allowlisting #2298

insumity opened this issue Sep 20, 2024 · 0 comments · Fixed by #2309
Assignees
Labels
C:x/provider Assigned automatically by the PR labeler

Comments

@insumity
Copy link
Contributor

insumity commented Sep 20, 2024

Problem

With Permissionless ICS, we can permissionlessly introduce new consumer chains. However, those consumer chains might send ICS rewards over to the provider chain in a denom that is not white listed. The only way to currently white list a denom is through a gov proposal which (slightly) defeats the purpose of permissionless.

Idea for a solution

  • The idea here is to allow each consumer chain to permissionlessly introduce at most 3 allowlisted denoms. This can be done by modifying the MsgChangeRewardDenoms message.
  • When rewards are sent to the provider (in ibc_middleware.go) those would be stored under a key = consumerId | denom => rewards association. This state could contain multiple denoms, even ones that are not whitelisted.
  • When we distribute rewards for a consumer with consumerId, we only go through all the current governance-allowlisted denoms, as well as all the denoms allowlisted by this specific consumer chain. For all those denoms, we check if there are any rewards under key = consumerId | denom and if so, those rewards are distributed accordingly to validators.

Note that the consumer chain does not have to be necessarily launched for it to registere at most 3 allowlisted denoms. That's because we only distribute rewards to launched validators.

@insumity insumity added the status: waiting-triage This issue/PR has not yet been triaged by the team. label Sep 20, 2024
@github-project-automation github-project-automation bot moved this to 🩹 F1: Triage in Cosmos Hub Sep 20, 2024
@insumity insumity self-assigned this Sep 20, 2024
@insumity insumity added C:x/provider Assigned automatically by the PR labeler and removed status: waiting-triage This issue/PR has not yet been triaged by the team. labels Sep 20, 2024
@insumity insumity moved this from 🩹 F1: Triage to 🏗 F3: InProgress in Cosmos Hub Sep 20, 2024
@github-project-automation github-project-automation bot moved this from 🏗 F3: InProgress to 👍 F4: Assessment in Cosmos Hub Oct 2, 2024
@mpoke mpoke moved this from 👍 F4: Assessment to ✅ Done in Cosmos Hub Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:x/provider Assigned automatically by the PR labeler
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

1 participant