-
Notifications
You must be signed in to change notification settings - Fork 375
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
feat: refactor govdao structure and examples #2379
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github-actions
bot
added
the
🧾 package/realm
Tag used for new Realms or Packages.
label
Jun 18, 2024
moul
changed the title
feat: refactor govdao execution mechanism and examples
feat: refactor govdao structure and examples
Jun 18, 2024
Signed-off-by: moul <94029+moul@users.noreply.github.com>
zivkovicmilos
approved these changes
Jun 18, 2024
zivkovicmilos
pushed a commit
that referenced
this pull request
Jul 8, 2024
This PR introduces a new pattern for arbitrary govdao proposals using Gno code using contexts. It involves wrapping the provided closure with a system that configures a `context.Context` with a field indicating that the execution occurs in the context of an `approvedByGovDao` proposal. This opens the door to a new ACL system, not based on `PrevRealm()`, but on a context-based "certification" system. I believe this pattern makes sense to exist; however, here are some drawbacks I can see: 1. `context.Context` is not yet needed (no goroutine support), and we may eventually never need this package depending on how we implement goroutines internally. (h/t @thehowl) 2. `context.Context` is used like an environment variable, which introduces implicitness—something we usually try to avoid to make Gno a very explicit language. Explicitness brings “simplicity” and “verifiability.” 3. The usual Go idiomatic way of using `context` is to pass it as the first argument. If this becomes more common, it will result in more contracts having exposed functions that are not callable by `maketx call` (though they can be called with `maketx run` or via an import). Depends on #2379 Related to #2386 --------- Signed-off-by: moul <94029+moul@users.noreply.github.com> Co-authored-by: Antonio Navarro Perez <antnavper@gmail.com>
gfanton
pushed a commit
to gfanton/gno
that referenced
this pull request
Jul 23, 2024
- remove `gov/integration/` - remove `gov/proposals/` - move the integration test in `gov/dao/*test.gno` - add `r/sys/validators.Render()` Signed-off-by: moul <94029+moul@users.noreply.github.com>
gfanton
pushed a commit
to gfanton/gno
that referenced
this pull request
Jul 23, 2024
This PR introduces a new pattern for arbitrary govdao proposals using Gno code using contexts. It involves wrapping the provided closure with a system that configures a `context.Context` with a field indicating that the execution occurs in the context of an `approvedByGovDao` proposal. This opens the door to a new ACL system, not based on `PrevRealm()`, but on a context-based "certification" system. I believe this pattern makes sense to exist; however, here are some drawbacks I can see: 1. `context.Context` is not yet needed (no goroutine support), and we may eventually never need this package depending on how we implement goroutines internally. (h/t @thehowl) 2. `context.Context` is used like an environment variable, which introduces implicitness—something we usually try to avoid to make Gno a very explicit language. Explicitness brings “simplicity” and “verifiability.” 3. The usual Go idiomatic way of using `context` is to pass it as the first argument. If this becomes more common, it will result in more contracts having exposed functions that are not callable by `maketx call` (though they can be called with `maketx run` or via an import). Depends on gnolang#2379 Related to gnolang#2386 --------- Signed-off-by: moul <94029+moul@users.noreply.github.com> Co-authored-by: Antonio Navarro Perez <antnavper@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
gov/integration/
gov/proposals/
gov/dao/*test.gno
r/sys/validators.Render()