Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

refactor(vm): use expected keeper interface#3935

Merged

Conversation

julienrbrt
Copy link
Contributor

The goal of this PR is to prepare making more usable the GnoVM by potentially other chains.

This follow the pattern that exists in the Cosmos SDK (https://github.com/cosmos/cosmos-sdk/blob/v0.52.0-beta.2/x/gov/types/expected_keepers.go) and that is being used in this repo as well:https://github.com/julienrbrt/gno/blob/71fbdef783b5d72ca603ed45b8fb10434ca0ab11/tm2/pkg/sdk/auth/types.go#L23.

@github-actionsgithub-actionsbot added the 📦 ⛰️ gno.landIssues or PRs gno.land package related labelMar 13, 2025
@Gno2D2Gno2D2 requested a review froma teamMarch 13, 2025 16:26
@Gno2D2Gno2D2 added the review/triage-pendingPRs opened by external contributors that are waiting for the 1st review labelMar 13, 2025
@Gno2D2
Copy link
Collaborator

Gno2D2 commentedMar 13, 2025
edited by zivkovicmilos
Loading

🛠 PR Checks Summary

AllAutomated Checks passed. ✅

Manual Checks (for Reviewers):
  • IGNORE the bot requirements for this PR (force green CI check)
  • The pull request description provides enough details
Read More

🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers.

✅ Automated Checks (for Contributors):

🟢 Maintainers must be able to edit this pull request (more info)
🟢 Pending initial approval by a review team member, or review from tech-staff

☑️ Contributor Actions:
  1. Fix any issues flagged by automated checks.
  2. Follow the Contributor Checklist to ensure your PR is ready for review.
    • Add new tests, or document why they are unnecessary.
    • Provide clear examples/screenshots, if necessary.
    • Update documentation, if required.
    • Ensure no breaking changes, or includeBREAKING CHANGE notes.
    • Link related issues/PRs, where applicable.
☑️ Reviewer Actions:
  1. Complete manual checks for the PR, including the guidelines and additional checks if applicable.
📚 Resources:
Debug
Automated Checks
Maintainers must be able to edit this pull request (more info)

If

🟢 Condition met└── 🟢 And    ├── 🟢 The base branch matches this pattern: ^master$    └── 🟢 The pull request was created from a fork (head branch repo: julienrbrt/gno)

Then

🟢 Requirement satisfied└── 🟢 Maintainer can modify this pull request
Pending initial approval by a review team member, or review from tech-staff

If

🟢 Condition met└── 🟢 And    ├── 🟢 The base branch matches this pattern: ^master$    └── 🟢 Not (🔴 Pull request author is a member of the team: tech-staff)

Then

🟢 Requirement satisfied└── 🟢 If    ├── 🟢 Condition    │   └── 🟢 Or    │       ├── 🟢 At least 1 user(s) of the organization reviewed the pull request (with state "APPROVED")    │       ├── 🟢 At least 1 user(s) of the team tech-staff reviewed pull request    │       └── 🔴 This pull request is a draft    └── 🟢 Then        └── 🟢 Not (🔴 This label is applied to pull request: review/triage-pending)
Manual Checks
**IGNORE** the bot requirements for this PR (force green CI check)

If

🟢 Condition met└── 🟢 On every pull request

Can be checked by

  • Any user with comment edit permission
The pull request description provides enough details

If

🟢 Condition met└── 🟢 And    ├── 🟢 Not (🔴 Pull request author is a member of the team: core-contributors)    └── 🟢 Not (🔴 Pull request author is user: dependabot[bot])

Can be checked by

  • team core-contributors

Copy link
Member

@notJoonnotJoon left a comment

Choose a reason for hiding this comment

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

looks reasonable and cleaner. Also, I confirmed all tests are passed.

remove:review/triage-pending flag

@notJoonnotJoon removed the review/triage-pendingPRs opened by external contributors that are waiting for the 1st review labelMar 14, 2025
Copy link
Member

@thehowlthehowl left a comment

Choose a reason for hiding this comment

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

This PR is OK, but currently making gno.land easy to extend and to use to launch different chains is a non-goal, so please let's refrain from making more PRs to make the gno.land codebase more extensible.

cc@zivkovicmilos

julienrbrt reacted with thumbs up emoji
Copy link
Member

@zivkovicmiloszivkovicmilos left a comment

Choose a reason for hiding this comment

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

Baby steps 💅

@codecovCodecov
Copy link

codecovbot commentedMar 14, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report?Let us know!

@zivkovicmiloszivkovicmilos merged commitb6c5524 intognolang:masterMar 14, 2025
60 of 61 checks passed
@julienrbrtjulienrbrt deleted the julien/interfaces-for-keepers branchMarch 14, 2025 12:03
matijamarjanovic added a commit to matijamarjanovic/gno that referenced this pull requestMar 17, 2025
commit b2d157ecb62f5a0ed12e6dea6f66b1cb3606baa5Merge: d2a32396 ec866301Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Mon Mar 17 23:29:46 2025 +0100    Merge branch 'master' into feat/token-hubcommit d2a32396655e7ae3a9d1de115c3b431a5b602af5Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Mon Mar 17 23:16:26 2025 +0100    - remove unneeded comment    - render touchups for better code readability & efficency    - rm unneccessart back to home links bc of existance of breadcrumbcommit 6e0a23305cb97daf8e0de5078a4cb2a96cb199cdAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Mon Mar 17 23:02:44 2025 +0100    update the realm with non-depricated version of namespace registry r/sys/userscommit ec866301dd3ba0d6171213cc59eb09c9e86f07e0Author: Jeff Thompson <jeff@thefirst.org>Date:   Mon Mar 17 16:44:56 2025 +0100    fix: stdlibs/os: func Sleep doesn't return a value (#3957)    Running `make test.components` gives the error:    ```    testing/testing.gno:6:2: could not import os (os/os.gno:24:9: sleep(int64(duration)) (no value) used as value) (code=4)    ```    To fix: PR https://github.com/gnolang/gno/pull/3677 added the [Sleep    function](https://github.com/gnolang/gno/blob/5e017a4e7d89827203c11c6642f844f0fd75a070/gnovm/tests/stdlibs/os/os.gno#L23-L25):    ```    func Sleep(duration time.Duration) {    return sleep(int64(duration))    }    ```    But `sleep` doesn't return a value. This PR removes `return`.    Signed-off-by: Jeff Thompson <jeff@thefirst.org>commit 5e017a4e7d89827203c11c6642f844f0fd75a070Author: Lee ByeongJun <lbj199874@gmail.com>Date:   Sat Mar 15 02:29:32 2025 +0900    feat(cmd): `gno mod` module name validations (#3526)    closes #3493    Added module path validation to prevent invalid characters from being    written to `gno mod` parsing phase.    The validation:    1. Checks for non-ASCII characters    2. Validates against specific invalid characters (``, ", \, ?, *, :, <,    >, |, [, ]`)    3. Prevents spaces and control characters    4. Ensures the module path is not empty    ---------    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit a53c05d4f4bc4f7ed55fd9f078adbab35c4ce12cAuthor: Rémi BARBERO <d4ryl00@gmail.com>Date:   Fri Mar 14 17:47:57 2025 +0100    feat: refactor r/gnoland/valopers to remove `r/sys/validators` dependency (#3830)    fixes https://github.com/gnolang/gno/issues/3567    Objectives:    - [x] The `/r/gnoland/valopers` should not have the dependency on    `/r/sys/validators`. So a new realm will do the glue between the    `valopers` realm and the `validators` valset.      - [x] remove dependency      - [x] write glue contract      - [x] write glue contract tests    - [x] As an admin, I can edit the instructions to register a new    valoper, espacially for what to put in the description field. So a    public function is needed to update the instructions and an    administration mechanism to restrict calls.    - [x] Change the API to be able to call valopers' functions directly    with a JS frontend (Connect, Adena), in one call. So we have to only use    primitive types on parameters and remove objects. We also have to create    new functions to update valopers for the desired fields.    - [x] Make functions more robust by implementing parameter validation.    - [x] Add protection on update functions so only the original caller can    update its valoper.    - [x] Prevent SPAM by the need of sending coins when you want to    register as a valoper.    - [x] Enhance the Render function with a pagination feature.    Process to be a validator:    1) Register your validator node as a `Valoper` with the    `r/gnolang/valopers.Register` function. Follow the instructions set in    the `Instructions` global variable (to be done).    2) When you think your valoper is ready, make a GovDao proposal to add    it to the validator valset with    `/r/gnoland/valopers_proposal.MakeProposal`.    In local environment, the two steps can be done by:    ```    gnokey maketx call \      -pkgpath "gno.land/r/gnoland/valopers" \      -func "Register" \      -gas-fee 1000000ugnot \      -gas-wanted 30000000 \      -send "20000000ugnot" \      -broadcast \      -chainid "dev" \      -args "berty" \      -args "Berty's validator description" \      -args "g1ut590acnamvhkrh4qz6dz9zt9e3hyu499u0gvl" \      -args "gpub1pgfj7ard9eg82cjtv4u4xetrwqer2dntxyfzxz3pq0skzdkmzu0r9h6gny6eg8c9dc303xrrudee6z4he4y7cs5rnjwmyf40yaj" \      -remote "tcp://127.0.0.1:26657" \      test1    gnokey maketx call \      -pkgpath "gno.land/r/gnoland/valopers_proposal" \      -func "ProposeNewValidator" \      -gas-fee 1000000ugnot \      -gas-wanted 20000000 \      -send "100000000ugnot" \      -broadcast \      -chainid "dev" \      -args "g1ut590acnamvhkrh4qz6dz9zt9e3hyu499u0gvl" \      -remote "tcp://127.0.0.1:26657" \      test1    ```    ---------    Signed-off-by: D4ryl00 <d4ryl00@gmail.com>    Signed-off-by: Jeff Thompson <jeff@thefirst.org>    Co-authored-by: Jeff Thompson <jeff@thefirst.org>    Co-authored-by: Miloš Živković <milos.zivkovic@tendermint.com>commit b6c55248760c3b23b807171352bfdcc04168026aAuthor: julienrbrt <julien@rbrt.fr>Date:   Fri Mar 14 12:57:59 2025 +0100    refactor(vm): use expected keeper interface (#3935)    The goal of this PR is to prepare making more usable the GnoVM by    potentially other chains.    This follow the pattern that exists in the Cosmos SDK    (https://github.com/cosmos/cosmos-sdk/blob/v0.52.0-beta.2/x/gov/types/expected_keepers.go)    and that is being used in this repo as well:    https://github.com/julienrbrt/gno/blob/71fbdef783b5d72ca603ed45b8fb10434ca0ab11/tm2/pkg/sdk/auth/types.go#L23.commit d677c2f526eecff89af3952782579f26913028feAuthor: Morgan <morgan@morganbaz.com>Date:   Thu Mar 13 17:36:40 2025 +0100    feat(gnovm): implement import rules for non-obvious identifiers (#3920)    This PR implements the rules for importing packages that don't match the    last element of their import path, with rules like those specified in    https://github.com/gnolang/gno/issues/3730#issuecomment-2704490872 .    Closes #3730.commit ec3d51aef2104fa9f4a19d16492155e8d66eb611Author: Alexis Colin <alexis@jaunebleu.co>Date:   Thu Mar 13 23:23:00 2025 +0900    style: fix sublist margin (#3934)    Simple PR to improve the margin balance between list and sublist in    gnoweb render.    cc @leohhhn    ![screenshot_2025-03-12_at_14 04    28](https://github.com/user-attachments/assets/6b7c2936-e7c2-4ff9-9b9f-d0ed87199525)commit c48c59bd608dfb36b60a354bf2e2551cbc2c16caAuthor: Manfred Touron <94029+moul@users.noreply.github.com>Date:   Wed Mar 12 15:07:35 2025 +0100    feat(examples): add p/moul/ulist/lplist (layered proxy list) (#3413)    Add a layered proxy list (for `ulist.IList`) for upgrade patterns.    Depends on #3407    ---------    Signed-off-by: moul <94029+moul@users.noreply.github.com>commit e0c414833602c51dbb0022b7b477018215b6ad26Merge: 3149275d 52bd2024Author: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Tue Mar 11 18:46:15 2025 +0100    Merge branch 'master' into feat/token-hubcommit 52bd2024116627b5f40ded8fc822273e521fba2bAuthor: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Tue Mar 11 18:19:05 2025 +0100    feat(r/docs): using `r/sys/users` (#3914)    Adds a simple example on how to resolve names and addresses using the    new user registry system. Also needed for a blog post.commit 5cb216049bc57d312e0855572b839dbab8770f41Author: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Tue Mar 11 17:48:45 2025 +0100    fix: user registry changes (#3905)    Making a few minor changes on the user registry realms.commit f71549e3bd905b0325b939db5c18f3b9d0949f92Author: Morgan <morgan@morganbaz.com>Date:   Tue Mar 11 17:15:26 2025 +0100    feat(examples): add gno.land/{p,r}/morgan/chess (#3911)    Quite incredible, I agree.    Includes a small fix on the preprocessor to make everything work. :tada:commit 8e04368f7266af43bcceb9a0e077955bfc7d2973Author: Jeff Thompson <jeff@thefirst.org>Date:   Tue Mar 11 16:09:12 2025 +0100    fix(pkg/doc): include Consts and Vars of the type in JSON (#3912)    This is a follow-on to the vm/qdoc PR    https://github.com/gnolang/gno/pull/3459 . We already handle the case    where the AST lists type constructors as part of the Type description.    We also need to handle the case where consts and vars of the type are    listed as part of the Type description (not in the main Consts and Vars    sections). See the [updated lines in the hello    test](https://github.com/gnolang/gno/blob/a693cd5146591261f90956e1899f5460d39535bc/gnovm/pkg/doc/testdata/integ/hello/hello.gno#L14-L18).    ```      var myStructPtr *myStruct      myStructConst *myStruct = &myStruct{a: 1000}    ```    For these values to appear in the vm/qdoc result, this PR fix is needed.    We also fix an oversight in the `JSONField` struct to add the json field    names.    ---------    Signed-off-by: Jeff Thompson <jeff@thefirst.org>commit 202c867f1d16ef07765971c7f47fd62d1bd7ddc1Author: Rémi BARBERO <d4ryl00@gmail.com>Date:   Tue Mar 11 15:02:44 2025 +0100    fix(examples): a p/moul/authz.ContractAuthority could execute multiple actions (#3913)    There was a once.Once object that prevented one action to be executed    twice by the ContractAuthority handler. But it also prevented the    ContractAuthority from executing any other actions.    The fix was to link the once.Once object to the action, not to the    ContractAuthority.    A test has also been added to test the case.    ---------    Signed-off-by: D4ryl00 <d4ryl00@gmail.com>    Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com>commit 6b6bbd3cefd5dc320e5d04571f26a62e134c79e4Author: Manfred Touron <94029+moul@users.noreply.github.com>Date:   Tue Mar 11 14:42:00 2025 +0100    chore(examples): move r/demo/markdown_test to r/docs/markdown + update content (#3909)    once merged, we should take the habit of updating it when we extend    gnoweb's rendering capabilities such as in #3763    ---------    Signed-off-by: moul <94029+moul@users.noreply.github.com>commit 1d125428842c0656cd5909305025d78ef3731701Author: Mustapha <102119509+mous1985@users.noreply.github.com>Date:   Tue Mar 11 11:10:32 2025 +0100    fix(gnoweb): footer logo link to navigate to home page (#3907)    This PR is to add "/" to the `href` attribute so the logo correctly    links to the home page.    Co-authored-by: mous1985 <mustapha.benazzouz@outlok.fr>commit 803ab8c6afbcfed24c17d40e6ac1210c8d7bf028Author: Miguel Victoria Villaquiran <miguelvicvil@gmail.com>Date:   Mon Mar 10 23:03:15 2025 +0100    chore: remove All nativeType and nativeValues (#3677)    Closes #1361    ---------    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit 42019f23590c78714401cdd010832bdb12c075d6Author: Alex Gherasie <68433935+agherasie@users.noreply.github.com>Date:   Tue Mar 11 03:10:59 2025 +0900    feat(examples): add {p,r}/agherasie/forms (#3524)    Sorry for the long hiatus which caused #2604 to close, I moved to South    Korea this year for a university exchange program and let this PR    collect dust for a while.    I've addressed    https://github.com/gnolang/gno/pull/2604#discussion_r1787776352 in    https://github.com/gnolang/gno/commit/7a6a03235e1a615d2fa942294ac625a170de6ba9,    hoping that the PR might be ready for merge now !    If not, please let me know if any further updates should be made to the    code !    ---    As part of the student contributor program, I attempted to create a new    example realm that allows the creation and submission of forms on gno !    - **Form Creation**: Create new forms with specified titles,    descriptions, and fields.    `CreateForm(...)`    - **Form Submission**: Submit answers to forms.    `SubmitForm(...)`    - **Form Retrieval**: Retrieve existing forms and their submissions.    `GetForms(...), GetFormByID(...), GetAnswer(...)`    - **Form Deadline**: Set a precise time range during which a form can be    interacted with.    The system supports the following field types:    type|example    -|-    string|`{"label": "Name", "fieldType": "string", "required": true}`    number|`{"label": "Age", "fieldType": "number", "required": true}`    boolean|`{"label": "Is Student?", "fieldType": "boolean", "required":    false}`    choice|`{"label": "Favorite Food", "fieldType":    "[Pizza|Schnitzel|Burger]", "required": true}`    multi-choice|`{"label": "Hobbies", "fieldType":    "{Reading|Swimming|Gaming}", "required": false}`    The external repo where the initial development took place and where you    can find the frontend is [here](https://github.com/agherasie/gno-forms).    The web app itself is hosted [here](https://gno-forms.netlify.app/)    And the most recent test4 version of the contract is    [forms2](https://test4.gno.land/r/g1w62226g8hykfmtuasvz80rdf0jl6phgxsphh5v/testing/forms2)    ---    Screenshots :    <details>    <summary>    <a    href="https://test4.gno.land/r/g1w62226g8hykfmtuasvz80rdf0jl6phgxsphh5v/testing/forms2">gnoweb    Render()</a>    </summary>    <img width="941" alt="image"    src="https://github.com/user-attachments/assets/24b9c17d-b51e-4d0b-ab19-b9bca49c0a89">    </details>    <details>    <summary>    <a    href="https://gno-forms.netlify.app/results/0000002/g1w62226g8hykfmtuasvz80rdf0jl6phgxsphh5v">    a form response in the web interface    </a>    </summary>    <img width="539" alt="image"    src="https://github.com/user-attachments/assets/b3469545-842f-4030-a4da-1060802c6477">    </details>    <details>    <summary>    <a href="https://gno-forms.netlify.app/create">creating a form in the    web interface</a></summary>    <img width="564" alt="image"    src="https://github.com/user-attachments/assets/c6e16bd0-0523-47a7-bf09-b3dc7f5d9314">    </details>    ---    <details><summary>Contributors' checklist...</summary>    - [X] Added new tests, or not needed, or not feasible    - [X] Provided an example (e.g. screenshot) to aid review or the PR is    self-explanatory    - [X] Updated the official documentation or not needed    - [X] 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    - [ ] Added new benchmarks to [generated    graphs](https://gnoland.github.io/benchmarks), if any. More info    [here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).    </details>    ---------    Co-authored-by: Leon Hudak <33522493+leohhhn@users.noreply.github.com>    Co-authored-by: Guilhem Fanton <8671905+gfanton@users.noreply.github.com>    Co-authored-by: Nathan Toups <612924+n2p5@users.noreply.github.com>    Co-authored-by: Morgan <morgan@morganbaz.com>commit b1685f0c8a13b287ca081536dbe87b2d0b30acfeAuthor: Morgan <morgan@morganbaz.com>Date:   Mon Mar 10 17:04:14 2025 +0100    ci: reciprocally test gnovm and examples when they change (#3904)    \+ fix the underlying bug in cmd/gno that was causing the failure.commit 460877725f02ae119caee119c25bb4f348f1e4abAuthor: Morgan <morgan@morganbaz.com>Date:   Mon Mar 10 16:35:33 2025 +0100    feat(cmd/gno): perform type checking before test (#3887)    Fixes #3831.    Adds type checking as a step before executing a package's tests.commit b1fc6ac59e4be64bc8823ca165a5354ab504a4acAuthor: Alexis Colin <alexis@jaunebleu.co>Date:   Tue Mar 11 00:29:18 2025 +0900    feat: add assets.gnoteam.com to the CSP img-src  whitelist (#3892)    In order to allow gnoteam images to be served through CSP, this PR adds    the dedicated domain https://assets.gnoteam.com/ to the rules. In    addition to https://gnolang.github.io/, which is used for the blog    system, gnoteam assets will also be used for general purposes, ensuring    secure and consistent asset delivery.commit 0d5a7370e45d5c74d98cb5c419eb08e82f16c216Author: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Mon Mar 10 16:22:00 2025 +0100    fix: remove `r/demo/users` traces (#3896)    Master is red because CI didn't catch VM tests related to `r/demo/users`    in #3166    This PR fixes this and also fixes some other leftover occurrences of    `r/demo/users`.    cc @thehowl this is another `examples/` dep that should probably be    removed.    ---------    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit a37a07356b2e5fa84f45285bb506740a773ea8e4Author: Petar Dambovaliev <petar.atanasov.1987@gmail.com>Date:   Sun Mar 9 15:42:12 2025 +0100    fix: interface to concrete type by T(ifaceVal) is not allowed (#3757)    Closes [3412](https://github.com/gnolang/gno/issues/3412)commit 9b5dc9c7d60365c0c0823980d665a02708c53c49Author: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Sat Mar 8 12:25:15 2025 +0100    refactor: `r/demo/users` (#3166)    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 of the new system.    It also makes a small change to the `p/demo/releases` lib.    - 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 #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    (to be moved to `r/nt/profiles` or `r/gnoland/profiles`)    - @jaekwon's request: add payment in GNOT for registration ✅    - 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 fully managed by GovDAO (after #3523 was resolved)    - Namespace checking functionality moved here (from `r/sys/users`),    added tests, as discussed with @moul    - ~Verify function now only upgradeable with a GovDAO prop instead of    previously being ownable~ verify func upgrateability removed, as we'll    just deploy a `r/sys/names/vX` when we need to, as discussed with @moul    - ~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.~ The namespace verify functionality is off by    default, but should be enabled in genesis via `r/sys/names.Enable()`.    The Portal Loop will indeed need to be patched if we enable this    functionality.    - Updated the VM keeper to call `r/sys/names` for the namespace check    instead of `r/sys/users`    - Updated params to load `r/sys/names`, which the keeper will call    ![Screenshot 2025-01-17 at 01 10    56](https://github.com/user-attachments/assets/b824c2aa-29b3-4497-99bf-689b7f49cb4a)    Currently this is the "releases" page for the user registration systems    (example data):    <img width="1287" alt="Screenshot 2025-02-03 at 12 19 28"    src="https://github.com/user-attachments/assets/0407b21d-4457-48af-80f4-b0ef10649337"    />    <details><summary>Contributors' checklist...</summary>    - [x] Added new tests, or not needed, or not feasible    - [x] Provided an example (e.g. screenshot) to aid review or the PR is    self-explanatory    - [x] Updated the official documentation or not needed    - [x] No breaking changes were made, or a `BREAKING CHANGE: xxx` message    was included in the description    - [x] Added references to related issues and PRs    - [x] Provided any useful hints for running manual tests    </details>    ---------    Co-authored-by: Morgan <morgan@morganbaz.com>    Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com>commit c68cbcce5f1d17918f2d7763d6b5d522ed046039Author: Morgan <morgan@morganbaz.com>Date:   Fri Mar 7 18:21:17 2025 +0100    chore: fix master build (#3891)commit ac5584b7872e11df3c53ae37fbc2092839a43fcaAuthor: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Fri Mar 7 17:32:36 2025 +0100    feat(examples): `p/leon/pkgerr` (#3738)    Adds a simple package to make your Gno errors match your realm path.    Go wizards tell me if I'm doing something wrong 🙏commit d24efa034173cb57168e27afdb3dcce4a07767fbAuthor: Jae Kwon <53785+jaekwon@users.noreply.github.com>Date:   Fri Mar 7 07:17:48 2025 -0800    feat: lock token transfer and parameter module, take 2 (#3860)    This is a continuation of https://github.com/gnolang/gno/pull/3176.    It breaks the params struct into fields and stores them in    <module>:_:<fieldname>. All parameters are of the form <module>:<name>    or <module>:<realm/_/*>:<name>. A colon is used rather than a period/dot    because it's ambiguous with realm domains.    std.SetParam is realm-local only, limited and safe.    sys/params.SetSysParam is arbitrary and global. Need to make sure it's    only importable by r/sys/params, but I think we said we'd do this with    "internal" or something. Maybe for a followup PR.    The ParamsKeeper is divided into prefix spaces, `pk.WithModule("bank")`    for example, and that is passed into the BankKeeper, that way the    BankKeeper only has access to the bank:* param space. "language    capabilities" security. But the VMKeeper needs to the root ParamsKeeper    because it needs to be able to modify anything via r/sys/params.    I got rid of the .type suffix of param keys. It's less safe right now    but we can add type safety to this later. You *can* and *must* use the    type suffix from toml for certain types though; "strings" which    represent []strings must be suffixed by .strings, because toml only    gives []interface{}{}.    ---------    Co-authored-by: piux2 <90544084+piux2@users.noreply.github.com>    Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com>    Co-authored-by: Morgan <morgan@morganbaz.com>commit a5e084cc668cbd55eb324f2c8970b8e0aca2b584Author: Morgan <morgan@morganbaz.com>Date:   Fri Mar 7 15:13:40 2025 +0100    feat(gnovm/tests/stdlibs): add `fmt` (#3847)    This PR removes `fmt` from being implemented using NativeValue /    NativeType, and implements a mostly pure-Gno implementation which uses    an initial, rudimentary implementation of Gno reflection for `fmt`.    This PR is ready for review, but some of its related work has been    broken out in separate PR to aid reviewing and create atomic PRs.    - Blocks #3677    - Relates to #1361    - Depends on #3861    - Depends on #3862    - Depends on #3875    The main addition is of this set of files, which comprises the bulk of    the added lines of this PR. Most of this is a copy of Go's `fmt`.    Changes are mostly in `errors.gno` and `format.gno` - the other files    are left mostly intact.    At the end of `print.gno`, there is an added section containing a set of    native functions which form the "reflection" needed to implement the    `fmt` package in a manner that is similar to Go's. The implementation is    not meant to be a public API and is meant to serve initially only for    usage by `fmt`; we can use this as sketch to then implement a proper    `reflect` package.    Attention in reviewing should mostly go to this `print.gno` and its    `print.go` counterpart, especially for any missed cases or potential    bugs.    Complementary to the above, to avoid some problems that were arising due    to the handling of os.Stdin, Stdout and Stderr, I also removed the    NativeValue / NativeType in `os` and replaced them with a native binding    alternative.    To avoid having both an `Output` and `ErrorOutput` on the machine, this    package supports an additional method on the `Machine.Output`,    `StderrWrite`, which is implemented by writers who wish to differentiate    between the two.    - `gnovm/pkg/test`    - added support for `StderrWrite` in its writers    - removed native values for `os`  and `fmt`    - combine `stdin`, `stdout`, `stderr` into a single `output` parameter    in the related functions.    - `gnovm/pkg/gnolang`    - support testing `gnovm/tests/stdlibs`, by only testing stdlibs that    exist there and not in the official stdlibs.    - `gnovm/cmd/gno`    - fix tests which needed the `fmt` package.    - `gnovm/tests/files`    - most changed tests are result of the improved functionality of the    `fmt` package, allowing for instance to show declared types correctly.    - `gnovm/stdlibs/bufio`    - due to the removal of `os.Stdin`, this example had to be changed.    - `misc/genstd`    - added a flag `-skip-init-order` when creating it could cause problems,    like the testing stdlibs; fixed a bug when using `TypedValue`.commit a36b8e6f9d770436a8e7b0b38b97aae21d04b9ceAuthor: Antoine Eddi <5222525+aeddi@users.noreply.github.com>Date:   Fri Mar 7 14:54:24 2025 +0100    feat: add gnoweb codeowners (#3890)    This PR:    - add dismissed review state support to the bot:    https://github.com/gnolang/gno/pull/3890/commits/90cdc51cb5df295fac4e7a1d712f304a98a4e4af    (requested here:    https://github.com/gnolang/gno/issues/3238#issuecomment-2701523356)    - add gnoweb codeowners to the config:    https://github.com/gnolang/gno/pull/3890/commits/f0001ccf2891cab12607a4ee0d400354204a7731    (requested here:    https://github.com/gnolang/gno/issues/3238#issuecomment-2693794519)    Note: It might be cleaner in the future to create codeowner teams for    different parts of the codebase (e.g. a `gnoweb-codeowners` team for    `gfanton` and `alexiscolin`) rather than manually listing each user in    the config. Something to think about.commit 01df7ebd04122725a62cf2e8cf536d7f3d426cafAuthor: Morgan <morgan@morganbaz.com>Date:   Fri Mar 7 14:05:11 2025 +0100    fix(gnovm/pkg/test): use scoped store when running GetMemPackage (#3854)    Fixes #3240    One-line fix for realms not having independent states when tested    together.commit f35bbf2669aab346e59f9b1f66aff3880f258f8fAuthor: Jerónimo Albi <jeronimo.albi@gmail.com>Date:   Fri Mar 7 00:37:42 2025 +0100    feat(examples): add `p/jeronimoalbi/datastore` package  (#3698)    The purpose of this package is to support a data store where multiple    collection based storages could be defined.    Each named storage defines a collection of records where each record can    optionally and by default have any number of user defined fields, which    can be constrained to a pre defined set of fields by using a schema    definition.    The implementation is a layer on top of `p/moul/collection`.    Example of `datastore` package usage:    ```go    package main    import (    ds "gno.land/p/jeronimoalbi/datastore"    )    func main() {    var db ds.Datastore    // Define a unique case insensitive index for user emails    emailIdx := ds.NewIndex("email", func(r ds.Record) string {    return r.MustGet("email").(string)    }).Unique().CaseInsensitive()    // Create a new storage for user records    storage := db.CreateStorage("users", ds.WithIndex(emailIdx))    // Add a user with a single "email" field    u := storage.NewRecord()    u.Set("email", "foo@bar.org")    // Save to assing user ID and update index(es)    u.Save()    println("Records =", storage.Size())    // Find the user by email    print("Search by Email ... ")    record, found := storage.Get(emailIdx.Name(), "foo@bar.org")    if !found {    panic("record by email not found")    }    println("ID =", record.ID())    // Find user by ID    print("Search by ID ... ")    record, found = storage.GetByID(u.ID())    if !found {    panic("record by ID not found")    }    email := record.MustGet("email").(string)    println("Email =", email)    // Delete the user from the storage and update index(es)    storage.Delete(u.ID())    println("Records =", storage.Size())    }    // Output:    // Records = 1    // Search by Email ... ID = 1    // Search by ID ... Email = foo@bar.org    // Records = 0    ```commit b0b752c34f8af073cf57d97bed203e71790cfa21Author: Manfred Touron <94029+moul@users.noreply.github.com>Date:   Fri Mar 7 00:37:00 2025 +0100    feat: docs v2 (#3868)    Continues #3855 by @leohhhn    The changes were great, and I kept most of the good content (thank you).    However, this PR slightly shifted the direction by making the `docs/`    folder more focused on GitHub, Markdown, and the project, rather than    Docusaurus, the website, or global documentation. In the future, we may    create a more comprehensive documentation website, but for now, we want    the `docs/` folder to be efficient and centered around the project.    Ideally, it should be the only resource we invest energy in. However, I    can easily envision supplementing it with external resources, such as    blog posts or another repository with non-project documentation.    Alternative view: https://github.com/leohhhn/gno/pull/2    - [x] Reorganize by personas (`builders/`, `users/`) and maintain a    `references/` section for metadata.    - [x] Remove items that do not belong in the `docs/` of this repository    (e.g., intro to blockchain).    - [x] Remove unusual numbers in titles, likely intended for Docusaurus.    - [x] Merge related content, such as combining `stdlibs/*` into    `stdlibs.md`.    - [x] Simplify `Makefile` and make it consistent with the other folders.    - [x] Simplify introduced `.github/workflows`.    - [x] Conduct a quick proofreading.    - [x] Fix links.    - [x] Removed docusaurus, can be discussed in an upcoming PR.    [1be1a3a](https://github.com/gnolang/gno/pull/3868/commits/1be1a3a388a252172f614d1bde8b6a90e5f799e4)    - [x] Removed content that should belong to somewhere else, such as    other README.md files.    ---------    Signed-off-by: moul <94029+moul@users.noreply.github.com>    Co-authored-by: leohhhn <hudakleon@gmail.com>    Co-authored-by: sw360cab <sw360cab@gmail.com>    Co-authored-by: Leon Hudak <33522493+leohhhn@users.noreply.github.com>    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit 69af6e277173afce8cb6da7bc6e74a2f7645203dAuthor: ltzmaxwell <ltz.maxwell@gmail.com>Date:   Thu Mar 6 23:04:36 2025 +0800    fix(gnovm): fix nil pointer deref for duplicate declarations (#3886)    close: #2763 .    This PR addresses the nil pointer issue, also fix the `redeclaration`    issue by @thehowl .    `filetest` is a special case, , `redeclaration` is still permitted in    filetest files(e.g. z_0_filetest, z_1_filetest...) for `convenience`.    ---------    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit f67adf25655282eaa56295f352fcac581bf3adb2Author: Morgan <morgan@morganbaz.com>Date:   Thu Mar 6 15:42:56 2025 +0100    chore: remove typeval and other unused uverse vals (#3883)commit f1d6210f0ab4936d15897d858fa7a2ac6a890054Author: sunspirit <167175638+linhpn99@users.noreply.github.com>Date:   Thu Mar 6 18:39:11 2025 +0700    fix(tm2): Fix the endpoint /tx?hash= to make it work (#2518)    From issue : https://github.com/gnolang/gno/issues/2489    I found an issue with the code segment parsing arguments from the    request that did not support base64 encoding, so I implemented logic to    handle it. If there are any inconsistencies, please share the opinion    ![Screenshot from 2024-07-06    12-00-09](https://github.com/gnolang/gno/assets/167175638/a4a0304d-10e0-41cc-abbc-d82a81301847)    <!-- please provide a detailed description of the changes made in this    pull request. -->    <details><summary>Contributors' checklist...</summary>    - [ ] 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    - [ ] Added new benchmarks to [generated    graphs](https://gnoland.github.io/benchmarks), if any. More info    [here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).    </details>    ---------    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>    Co-authored-by: Miloš Živković <milos.zivkovic@tendermint.com>commit 5b056d779ef74ed6fb4f9edc9e715be46d9d16a9Author: Alexis Colin <alexis@jaunebleu.co>Date:   Thu Mar 6 20:15:39 2025 +0900    fix(gnoweb): breadcrumb generation for consistent argument and query handling (#3835)    This PR refactors the `generateBreadcrumbPaths` function to provide a    consistent model for handling breadcrumb parts extracted from the URL    path, arguments, and query parameters. The changes include:    - **Consistent Extraction of Parts:**    The existing logic that splits the URL path into parts remains    unchanged. However, the root (`p` / `r`) part is not clickable anymore    since we don't have any content here for now. It also fixes the HTML    list with proper ending tags and Aria attributes/elements.    - **New Argument Parts (ArgParts):**    Instead of storing all arguments as a single string, we now split the    url.Args value (i.e., the part after the `:`) into individual segments.    These segments are processed similarly to the path parts, with    cumulative URLs generated for each segment. This provides a more    granular and consistent breadcrumb structure.    - **Query Parameters Handling:**    Query parameters (after the `?`) are iterated over and added to a new    Queries slice. Since iterating over an empty map is safe, no additional    condition is required here.    - **Update query value on click from input:**    By clicking on the query from the breadcrumb, it becomes possible to    edit the value quickly.    - **Fixing breadcrumb special characters in the input box**    Enable `EncodeNoEscape` in the `EncodeURL` functions in order to remove    escaped chars.    <img width="907" alt="Capture d’écran 2025-03-04 à 23 50 16"    src="https://github.com/user-attachments/assets/7fb6c6a8-cc15-4caa-80e2-cd6eae20cea2"    />    <img width="908" alt="Capture d’écran 2025-03-04 à 23 50 55"    src="https://github.com/user-attachments/assets/b9870915-e90a-4af1-b12e-bd387715e629"    />    <img width="907" alt="Capture d’écran 2025-03-05 à 00 27 16"    src="https://github.com/user-attachments/assets/6ee3c9fb-a762-4c1c-bcd0-05e3278bb0f0"    />    <img width="907" alt="Capture d’écran 2025-03-04 à 23 46 56"    src="https://github.com/user-attachments/assets/b5442c99-9259-4c45-8019-bc55e9e979aa"    />    <img width="908" alt="Capture d’écran 2025-03-04 à 23 43 06"    src="https://github.com/user-attachments/assets/8e4f6002-fbc7-45d8-8e7c-23b394fd5108"    />    <img width="908" alt="Capture d’écran 2025-03-04 à 23 43 30"    src="https://github.com/user-attachments/assets/e3194167-f65b-4806-90de-d2e7d32c60f1"    />    <img width="907" alt="Capture d’écran 2025-03-05 à 01 05 20"    src="https://github.com/user-attachments/assets/fde2457c-081a-4c83-948a-ff125f10b60f"    />commit cbaaf392d511dd8fce6f885490be1038ff944fffAuthor: Kazaï <149690535+kazai777@users.noreply.github.com>Date:   Wed Mar 5 17:55:22 2025 +0100    feat(examples): add `p/thox/{accesscontrol,timelock}` (#2307)    We have developed two packages: `accesscontrol` and `timelock` inspired    by openzeppelin contracts. These packages were created in collaboration    with @mous1985 , @DIGIX666 , and myself.    The `accesscontrol` package was primarily designed to support the    development of the `timelock` package, but it can also be used    independently for many other use cases.    The `accesscontrol` package provides a library for managing roles and    permissions within Gno. It allows for the creation, assignment, and    management of roles with specific administrative privileges, ensuring    that only authorized accounts can perform certain actions.    The `timelock` package offers a library for scheduling, canceling, and    executing time-locked operations in Gno. It ensures that operations are    only carried out after a specified delay and provides mechanisms to    manage and verify the status of these operations. The creation of the    `accesscontrol` package was necessary to provide role and permission    management required for the administrative tasks of `timelock`.    - Realm Administration Management: Create administrator roles to manage    realms and assign or revoke roles as needed.    - Role-Based Access Control (RBAC): Implement an RBAC system to control    who can access which resources and perform which actions within a Gno    dApp.    - Security and Compliance: Use roles to ensure that only authorized    individuals can perform critical actions, helping to meet security and    compliance regulations.    - Delayed Transactions: Schedule transactions or actions to be executed    at a specific future time.    - Asset Locking: Implement asset locking mechanisms where users must    wait for a certain period before they can access or move assets.    - Task Automation: Automate periodic or conditional tasks using specific    time delays.    These examples of use cases are not exhaustive, and many other things    are possible with these packages.    <!-- please provide a detailed description of the changes made in this    pull request. -->    <details><summary>Contributors' checklist...</summary>    - [ ] 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    - [ ] Added new benchmarks to [generated    graphs](https://gnoland.github.io/benchmarks), if any. More info    [here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).    </details>    ---------    Co-authored-by: théo dub <theodub@MacThox.local>    Co-authored-by: mous1985 <mustapha.benazzouz@outlook.fr>    Co-authored-by: Mustapha <102119509+mous1985@users.noreply.github.com>    Co-authored-by: deelawn <dboltz03@gmail.com>    Co-authored-by: Thox <90353329+DIGIX666@users.noreply.github.com>    Co-authored-by: DIGIX666 <digixit66@gmail.com>    Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com>    Co-authored-by: Morgan <git@howl.moe>    Co-authored-by: Morgan <morgan@morganbaz.com>commit ac165805d84b804da3d5d4434cae0c193dee4e0eAuthor: Morgan <morgan@morganbaz.com>Date:   Wed Mar 5 14:48:23 2025 +0100    feat(gnovm): improve interface/func/struct type `String` methods (#3875)    - only show the types in the parameters and results for functions,    matching go's reflect.Type.String    - match field list to go's    extracted from #3847.    This blocks https://github.com/gnolang/gno/pull/3847 because for    simplicity, we use the type String() methods for syntaxes like `%#v` and    `%T` which show the type. Making these match Go's avoids us modifying    some types, and I think it's a nice addition in making us more    consistent with Go.commit b01689fd389dbb913e52dd2af16687097c6baf84Author: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Wed Mar 5 14:42:36 2025 +0100    fix(minisocial): reset pager upon reset (#3879)    The pager was not being reset upon post resetting the app.commit 6f91a35f3fcb0da593a8b45f6b19d70865406e05Author: Emmanuel T Odeke <emmanuel@orijtech.com>Date:   Tue Mar 4 18:56:19 2025 +0200    docs: improve go<>gno compat document searchability on complex numbers (#3852)    Imaginary values are not supported in Gno. Found by fuzzing and    compatibility checks between Go and Gno    ```go    package main    const (    Nj = 0i    )    ```commit 4ac5fa48190b34cd83c786cebf8c4a3e3b991b2bAuthor: Morgan <morgan@morganbaz.com>Date:   Tue Mar 4 17:47:21 2025 +0100    feat(gnovm): show stacktraces when recovering from a test (#3837)    This PR ensures that when we recover inside of testing.gno, we then    print also the resulting stracktrace, using a special function.commit e344aca5b11ed9285fd8327b8026c70d8a6c9f31Author: Morgan <morgan@morganbaz.com>Date:   Tue Mar 4 17:29:03 2025 +0100    fix(gnovm): handle calling method with value receiver on nil (#3861)    This used to return a weird panic, now it correctly panics with a nil    pointer dereference.    Extracted from #3847.    ---------    Co-authored-by: ltzmaxwell <ltz.maxwell@gmail.com>commit 1a9909485979d2e68741ea2a953f972820572a0cAuthor: Marc Vertes <marc.vertes@tendermint.com>Date:   Tue Mar 4 16:22:01 2025 +0100    fix(gnovm): fix unary operator ^ on constants (#3876)    Apply Bigint.Not for untyped big ints.    Fixes #3864.commit 253c766117187c42267ab9dda2edab10d75216d6Author: ltzmaxwell <ltz.maxwell@gmail.com>Date:   Tue Mar 4 22:31:23 2025 +0800    fix(gnovm): correct const type deduction (#2948)    closes https://github.com/gnolang/gno/issues/2944 and #3863    <!-- please provide a detailed description of the changes made in this    pull request. -->    <details><summary>Contributors' checklist...</summary>    - [ ] 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    - [ ] Added new benchmarks to [generated    graphs](https://gnoland.github.io/benchmarks), if any. More info    [here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).    </details>commit 536ea5bcde41ab3d2d2fd43fef99855d7cb6f858Author: grepsuzette <350354+grepsuzette@users.noreply.github.com>Date:   Tue Mar 4 03:26:07 2025 +0800    feat(examples): create /r/grepsuzette/home (#3652)    This is a home realm.    @michelleellen kindly asked me if I wanted to create a    r/grepsuzette/home so here it is :)    ---------    Co-authored-by: grepsuzette <grepsuzette@users.noreply.github.com>    Co-authored-by: Leon Hudak <33522493+leohhhn@users.noreply.github.com>commit 9cd5c0e35a97d4c569e1302fa877591448ddb54aAuthor: Mustapha <102119509+mous1985@users.noreply.github.com>Date:   Mon Mar 3 20:20:13 2025 +0100    feat(example): `r/mouss` (#3472)    Hi Gnomes ,    This is my home page. it was difficult to be creative 😅 , so i did what    i can do    I put some informations about me    ![Screenshot 2025-01-09 at 21 14    20](https://github.com/user-attachments/assets/6da7926f-7b89-4363-83b0-83d103232f10)    I'm passionate about cooking, so I've set up a page for those who want    to share their national culinary specialties or just their favorite    recipes, since there are so many nationalities in `gno` community.    ![Screenshot 2025-01-09 at 21 22    54](https://github.com/user-attachments/assets/f82b543e-43c4-47ac-8bab-4fe2874378a3)    feel free to add your recipes ;)    ![Screenshot 2025-01-09 at 21 35    17](https://github.com/user-attachments/assets/1773522b-0b5a-431d-b8af-12ab6dc1c96e)    @leohhhn    ---------    Co-authored-by: Leon Hudak <33522493+leohhhn@users.noreply.github.com>    Co-authored-by: mous1985 <mustapha.benazzouz@outlok.fr>commit fc359eacc31bad937e7fa0d81df415839c734378Author: Morgan <morgan@morganbaz.com>Date:   Mon Mar 3 16:33:28 2025 +0100    fix(gnovm): support len() on nil map (#3856)    This would panic at runtime due to a missed condition in    TypedValue.GetLength.commit 6c20104594fc2a4db260834ef0b76503590a21e9Author: Morgan <morgan@morganbaz.com>Date:   Mon Mar 3 15:57:24 2025 +0100    feat(gnovm): add `any` type (#3862)    This exists in Go, and it's a pain to add it later as a global, so    making a PR to add this.    extracted from #3847.    ---------    Co-authored-by: ltzmaxwell <ltz.maxwell@gmail.com>commit dc62b1888b5f8c68bb1cffa1a0185992fa328a51Author: Manfred Touron <94029+moul@users.noreply.github.com>Date:   Sat Mar 1 13:03:38 2025 +0100    chore: improve error response structure and metadata (#3845)    Adds a `vm.version={version}` when the VM returns an error response.    Alternatively, we could simplify access to the version and other    metadata, possibly with a "gnokey maketx --debug" command. However, I    believe this addition is light enough to be included as a built-in    feature.    ---------    Signed-off-by: moul <94029+moul@users.noreply.github.com>commit 00ddf5516c0c5553c283ae9e2cab990f487b75bbAuthor: Manfred Touron <94029+moul@users.noreply.github.com>Date:   Fri Feb 28 18:56:09 2025 +0100    chore: refactor gnoland/home (#3853)    - simplify    - make it more loop-friendly (PRs are easier)    - cleanup html and invalid markdown    - retained the current content to allow for PRs that focus on updating    it    ---------    Signed-off-by: moul <94029+moul@users.noreply.github.com>commit c06de0ac0c4f2c2445f5894396940f707153c002Author: Alexis Colin <alexis@jaunebleu.co>Date:   Sat Mar 1 01:06:16 2025 +0900    fix(gnoweb): change 'docs' to 'actions', updates to menus (#3850)    This issue improves the user experience (UX) of GnoWeb by:    - Replacing `Docs` with `Actions` in the navigation bar.    If the goal was to provide documentation for the realm similar to what    [pkg.go.dev](https://pkg.go.dev/) offers (in conjunction with #3459),    that feature is not yet available and causes confusion.    - Updating navigation icons to make each entry more understandable.    - Promoting `Secure Mode` in the Helper page.    Secure Mode is now enabled by default instead of Fast Mode, which    currently displays a security message.    - Replacing X with Twitter in the footer navigation.    - Removing `Actions` (current Docs menu) for `/p` contents.    <img width="1724" alt="Capture d’écran 2025-02-28 à 17 32 42"    src="https://github.com/user-attachments/assets/78afd15f-0ec6-4c47-882e-e22e5578cb62"    />commit e352770149c631c529e380ba2cdfe785878ff629Author: grepsuzette <350354+grepsuzette@users.noreply.github.com>Date:   Fri Feb 28 19:14:52 2025 +0800    fix(amino): panic when registering types with the same name (#2325)    This adds some doc and tests to `tm2/pkg/amino` to address the following    in amino_test.go:    fixed #2326    `// XXX Test registering duplicate names or concrete types not in a    package.`    - **chore(docs): document frequent functions in tm2/pkg/amino**    - **chore(amino): add some tests**    ```    cd tm2/pkg/amino    go test -v --run=WithPanic\$    ```    Tests have uncovered a potential bug however in `TestDupNamesMustPanic`.    Opening an issue now to document this, with a possible fix.    ```go    // The following does NOT panic, but it should.    // assert.Panics(t, func() {    // myPkg.WithTypes(    // tests.EmptyStruct{}, "A",    // tests.PrimitivesStruct{}, "B",    // tests.ShortArraysStruct{}, "A", // Same name    // )    // })    ```    <details><summary>Contributors' checklist...</summary>    - [x] Added new tests, or not needed, or not feasible    - [x] Provided an example (e.g. screenshot) to aid review or the PR is    self-explanatory    - [x] Updated the official documentation or not needed    - [x] No breaking changes were made, or a `BREAKING CHANGE: xxx` message    was included in the description    - [ ] Added references to related issues and PRs    - [x] Provided any useful hints for running manual tests    - [ ] Added new benchmarks to [generated    graphs](https://gnoland.github.io/benchmarks), if any. More info    [here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).    </details>    ---------    Co-authored-by: grepsuzette <grepsuzette@users.noreply.github.com>    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit f4324fb34674a880b1d663c5e01e9c00750a8355Author: Jeff Thompson <jeff@thefirst.org>Date:   Fri Feb 28 11:28:12 2025 +0100    feat: Add vm/qdoc with function comments (#3459)    Addresses    https://github.com/gnolang/gno/issues/522#issuecomment-2528693327    by adding a query for `vm/qdoc` that uses a similar code path to `gno    doc` which includes comments.    For example, `gnokey query vm/qdoc -data    "gno.land/r/gnoland/valopers/v2" -remote tcp://127.0.0.1:26657` returns    the following JSON doc for    [valopers](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/gnoland/valopers/v2/valopers.gno).    ```    {      "package_path": "gno.land/r/gnoland/valopers/v2",      "package_line": "package valopers // import \"valopers\"",      "package_doc": "Package valopers is designed around the permissionless lifecycle of valoper profiles. It also includes parts designed for govdao to propose valset changes based on registered valopers.\n",      "values": [        {          "signature": "const (\n\terrValoperExists        = \"valoper already exists\"\n\terrValoperMissing       = \"valoper does not exist\" // Valoper is missing\n\terrInvalidAddressUpdate = \"valoper updated address exists\"\n\terrValoperNotCaller     = \"valoper is not the caller\"\n)",          "const": true,          "values": [            {              "name": "errValoperExists",              "doc": "",              "type": ""            },            {              "name": "errValoperMissing",              "doc": "",              "type": ""            },            {              "name": "errInvalidAddressUpdate",              "doc": "",              "type": ""            },            {              "name": "errValoperNotCaller",              "doc": "",              "type": ""            }          ],          "doc": ""        },        {          "signature": "var valopers *avl.Tree // Address -> Valoper\n",          "const": false,          "values": [            {              "name": "valopers",              "doc": "// Address -> Valoper\n",              "type": "*avl.Tree"            }          ],          "doc": "valopers keeps track of all the active validator operators\n"        }      ],      "funcs": [        {          "type": "",          "name": "GovDAOProposal",          "signature": "func GovDAOProposal(address std.Address)",          "doc": "GovDAOProposal creates a proposal to the GovDAO for adding the given valoper to the validator set. This function is meant to serve as a helper for generating the govdao proposal\n",          "params": [            {              "Name": "address",              "Type": "std.Address"            }          ],          "results": []        },        {          "type": "",          "name": "Register",          "signature": "func Register(v Valoper)",          "doc": "Register registers a new valoper\n",          "params": [            {              "Name": "v",              "Type": "Valoper"            }          ],          "results": []        },        {          "type": "",          "name": "Render",          "signature": "func Render(_ string) string",          "doc": "Render renders the current valoper set\n",          "params": [            {              "Name": "_",              "Type": "string"            }          ],          "results": [            {              "Name": "",              "Type": "string"            }          ]        },        {          "type": "",          "name": "Update",          "signature": "func Update(address std.Address, v Valoper)",          "doc": "Update updates an existing valoper\n",          "params": [            {              "Name": "address",              "Type": "std.Address"            },            {              "Name": "v",              "Type": "Valoper"            }          ],          "results": []        },        {          "type": "",          "name": "init",          "signature": "func init()",          "doc": "",          "params": [],          "results": []        },        {          "type": "",          "name": "isValoper",          "signature": "func isValoper(address std.Address) bool",          "doc": "isValoper checks if the valoper exists\n",          "params": [            {              "Name": "address",              "Type": "std.Address"            }          ],          "results": [            {              "Name": "",              "Type": "bool"            }          ]        },        {          "type": "",          "name": "GetByAddr",          "signature": "func GetByAddr(address std.Address) Valoper",          "doc": "GetByAddr fetches the valoper using the address, if present\n",          "params": [            {              "Name": "address",              "Type": "std.Address"            }          ],          "results": [            {              "Name": "",              "Type": "Valoper"            }          ]        },        {          "type": "Valoper",          "name": "Render",          "signature": "func (v Valoper) Render() string",          "doc": "Render renders a single valoper with their information\n",          "params": [],          "results": [            {              "Name": "",              "Type": "string"            }          ]        }      ],      "types": [        {          "name": "Valoper",          "signature": "type Valoper struct {\n\tName        string // the display name of the valoper\n\tMoniker     string // the moniker of the valoper\n\tDescription string // the description of the valoper\n\n\tAddress      std.Address // The bech32 gno address of the validator\n\tPubKey       string      // the bech32 public key of the validator\n\tP2PAddresses []string    // the publicly reachable P2P addresses of the validator\n\tActive       bool        // flag indicating if the valoper is active\n}",          "doc": "Valoper represents a validator operator profile\n"        }      ]    }    ```    ---------    Signed-off-by: Jeff Thompson <jeff@thefirst.org>    Signed-off-by: D4ryl00 <d4ryl00@gmail.com>    Co-authored-by: D4ryl00 <d4ryl00@gmail.com>    Co-authored-by: Morgan <morgan@morganbaz.com>commit 9d1fbf542ae88ec3d14decf05c5d0e3ce25bc2a5Author: Petar Dambovaliev <petar.atanasov.1987@gmail.com>Date:   Fri Feb 28 11:17:07 2025 +0100    fix: check interface convertable and print safe nil (#3843)    Closes [3768](https://github.com/gnolang/gno/issues/3768), closes    [3758](https://github.com/gnolang/gno/issues/3758)    ---------    Co-authored-by: Morgan Bazalgette <morgan@morganbaz.com>commit 17f44dcc1cadb1179882525a3968cf7ad35352f7Author: ltzmaxwell <ltz.maxwell@gmail.com>Date:   Fri Feb 28 00:26:12 2025 +0800    fix(gnovm): remove readonly flag (#3840)    closes: #3800 . see comments below.commit 3149275d30e2e6e4976b86161c895253a2cf34f5Merge: 6843b35e d1db75ebAuthor: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Thu Feb 27 15:14:40 2025 +0100    Merge branch 'master' into feat/token-hubcommit 6843b35e40e8705adb68c2c50653359365e71dd6Merge: 0704227f d7ce1691Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Wed Feb 26 23:51:23 2025 +0100    Merge branch 'master' into feat/token-hubcommit 0704227ff6bc01ef4026d72f9ddaa4cc4a3cae9bMerge: e8c1150a 3288fe82Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Tue Feb 25 15:36:03 2025 +0100    Merge branch 'master' into feat/token-hubcommit e8c1150ae18b5e1a78cf372475ad6581caea355cMerge: 15341be0 85b3c0b7Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Sat Feb 22 14:15:53 2025 +0100    Merge branch 'master' into feat/token-hubcommit 15341be041e52f61c2bdccb9dca25f68bf4f24c6Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Feb 20 16:17:25 2025 +0100    update grc20 regcommit 83174f8d5976d9b62fae9ef07a178650b4ab3997Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Feb 20 16:15:05 2025 +0100    update with new names from 0a239e1ec444916260c400324ccb66fc02f01bc2commit 76a1d9641ffab774e347e26e69b32644fa2629cbMerge: 947a4565 b04ca6c5Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Thu Feb 20 16:12:30 2025 +0100    Merge branch 'master' into feat/token-hubcommit 947a4565fbd7f104bc7de3200e96ac0a53dbeeafMerge: 05982b27 d7e18a22Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Tue Feb 18 22:57:14 2025 +0100    Merge branch 'master' into feat/token-hubcommit 05982b273f83e15cc8154d7d9526dea3d28d5ee7Merge: 272e0657 91300636Author: matija marjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Mon Feb 17 14:38:55 2025 +0100    Merge branch 'master' into feat/token-hubcommit 272e065718dec2b5994d67f5f12faa0b0aaae90aAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Sat Feb 15 18:53:07 2025 +0100    replace wrong namecommit 971170e47e13983b00b60126fee421c10c9b4790Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Sat Feb 15 17:08:30 2025 +0100    add getalltokenswithdetailscommit 616130103388cf63d30c90f915aeaf24f164b4a2Merge: 997eeeab fcd0e04eAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Sat Feb 15 17:02:01 2025 +0100    Merge branch 'feat/token-hub' of https://github.com/matijamarjanovic/gno into feat/token-hubcommit 997eeeab6b966b26f51a54851e7b67443d12c6b3Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Sat Feb 15 17:01:59 2025 +0100    add get all tokens with infocommit fcd0e04ed68cd3dee6090174e5fb4b3f9c82e83bMerge: f3b4f2b4 9884ba10Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Sat Feb 15 16:58:42 2025 +0100    Merge branch 'master' into feat/token-hubcommit f3b4f2b44c89c089b19b6a41e8d8bd256d2c8fd6Merge: bd108006 2e491411Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Fri Feb 14 00:04:03 2025 +0100    Merge branch 'master' into feat/token-hubcommit bd1080066da593e57996d4ac5e41ff28511491a2Merge: beca6637 d0201fb3Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Wed Feb 12 11:36:54 2025 +0100    Merge branch 'master' into feat/token-hubcommit beca66374d5d6c0ed874abf52494dd96aa0e79fdAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Wed Feb 12 10:54:41 2025 +0100    replace paths for tokenhubcommit 7028ad3942308fefe49aac3e66e13deffbf9fbd7Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Wed Feb 12 00:22:43 2025 +0100    run make test.sync in examplescommit 5918dd56e161344760d30ca6119c287a79ffb4c5Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Wed Feb 12 00:13:27 2025 +0100    fix test?commit 2675fc06c69e5cf063fb738697760990e56cce9dAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Wed Feb 12 00:04:33 2025 +0100    fix testscommit 5fa00c8981274982bd3fdb55916707557325142aAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:58:28 2025 +0100    move tokenhub back to my namespacecommit 3f32a329f53c1be59787489d1dd2243cc6be38f1Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:57:46 2025 +0100    fix formattingcommit edd676b9e78661d41211205e34269f0e223e6863Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:53:53 2025 +0100    simplify logiccommit 9ee19b1124300debd7b97211125e78da0769200eAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:47:58 2025 +0100    fix formatting, remove new linescommit 2a2a02910b4e953f52a313d51cff0dcaeb7377d7Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:44:34 2025 +0100    fix linkscommit b9580c804b60e2f1035390149074c3dfdbea078cAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:37:23 2025 +0100    add renderFootercommit 13d327c6b6aba9d1f480f297be3602ba97a53a33Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 11 23:31:58 2025 +0100    don't export renders. move consts to render.gnocommit f64687cbd30c3fb8d75a08c536f1ced23b7c5b2eMerge: 0db4ec89 31fcf6aaAuthor: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Mon Feb 10 22:52:40 2025 +0100    Merge branch 'master' into feat/token-hubcommit 0db4ec89832c680af165b076a31b865ae4ba5a55Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Feb 6 18:23:25 2025 +0100    try and fix tstscommit ecd1b522a3327255c3d27774356f9fa70706b54dAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Feb 6 17:05:32 2025 +0100    fix fmtcommit 7bcf274882b2c6c77b8205c5fa61ec02ee8f275bAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Feb 6 17:02:13 2025 +0100    add tests for getterscommit 0bf538896d541d7a3921f110afb2fc854ef869d7Merge: e70b81a0 a01a030aAuthor: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Thu Feb 6 16:54:52 2025 +0100    Merge branch 'master' into feat/token-hubcommit e70b81a0da35c4933a6f9d44c165f95b89e60ee5Merge: 50305aad 0b76b0b0Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Wed Feb 5 20:30:24 2025 +0100    Merge branch 'master' into feat/token-hubcommit 50305aad6ceb60431969a4c6566d90c5aa021543Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Feb 4 18:15:44 2025 +0100    add hof registrationcommit d09eebcff97fdfd8bf58e3963103d33aa659d606Merge: 403efc5c 85a8740bAuthor: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Tue Feb 4 14:54:01 2025 +0100    Merge branch 'master' into feat/token-hubcommit 403efc5c43de89e5415750d7962984ae26a32a61Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Fri Jan 31 02:22:17 2025 +0100    fix testscommit 1c3b939b47dc7f86d6809441cbcfcf41ad18f719Merge: cbfe5979 57da3243Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Fri Jan 31 02:05:03 2025 +0100    Merge branch 'master' into feat/token-hubcommit cbfe597988cc117d0130991b17cba9516a6d35b2Merge: baeadcb7 a885c78dAuthor: Leon Hudak <33522493+leohhhn@users.noreply.github.com>Date:   Tue Jan 28 23:08:08 2025 +0100    Merge branch 'master' into feat/token-hubcommit baeadcb795d898119d0b1ad40dda390fea482f9bAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Jan 23 19:55:42 2025 +0100    remove filescommit 7c5c2a72f996b7b12a10a1088b7406ce5a69fd4bMerge: 13e4992c dabdf613Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Jan 23 19:55:03 2025 +0100    Merge branch 'feat/token-hub' of https://github.com/matijamarjanovic/gno into feat/token-hubcommit 13e4992c6a099119b1d2eabbf4eb1a0b72e55548Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Thu Jan 23 19:54:47 2025 +0100    -move token hub to r/demo    -adapt grc20reg to use the right keycommit dabdf613fbb56857b18dfe9532a692e7e8e913c3Merge: 8d85cf13 8e1c5328Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Thu Jan 23 19:54:04 2025 +0100    Merge branch 'master' into feat/token-hubcommit 8d85cf13f211d2d34d6a65d007f174b64561a897Merge: 0adea0ec fd244862Author: matijamarjanovic <93043005+matijamarjanovic@users.noreply.github.com>Date:   Thu Jan 23 18:14:25 2025 +0100    Merge branch 'master' into feat/token-hubcommit 0adea0ec8955b9c33e518ba74423ee89ce7d6264Author: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Wed Jan 22 14:38:01 2025 +0100    set page size to 10commit 1e0f60c4cbcaba2fb6cf32345b8dde30b98334fcAuthor: matijamarjanovic <mmarjanovic11121rn@raf.rs>Date:   Tue Jan 21 21:40:50 2025 +0100    fix fmt againcommit 7be170b55fbf32ece95e4d94bf5e8bf8a368d16bAuthor: matijam…
stefann-01 pushed a commit to stefann-01/gno that referenced this pull requestMar 19, 2025
The goal of this PR is to prepare making more usable the GnoVM bypotentially other chains.This follow the pattern that exists in the Cosmos SDK(https://github.com/cosmos/cosmos-sdk/blob/v0.52.0-beta.2/x/gov/types/expected_keepers.go)and that is being used in this repo as well:https://github.com/julienrbrt/gno/blob/71fbdef783b5d72ca603ed45b8fb10434ca0ab11/tm2/pkg/sdk/auth/types.go#L23.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@thehowlthehowlthehowl approved these changes

@notJoonnotJoonnotJoon approved these changes

@zivkovicmiloszivkovicmiloszivkovicmilos approved these changes

Assignees

@julienrbrtjulienrbrt

Labels
📦 ⛰️ gno.landIssues or PRs gno.land package related
Projects
Status: Done
Status: Done
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

5 participants
@julienrbrt@Gno2D2@thehowl@notJoon@zivkovicmilos

[8]ページ先頭

©2009-2025 Movatter.jp