From 3d0ba3d6c9387883f7f8ee708461caf77502c968 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 13:52:18 +0200 Subject: [PATCH 1/7] chore: boards2 protected helper functions: Remove assertCallerHasBoardsNS and realm param Signed-off-by: Jeff Thompson --- .../v1/filetests/z_get_board_00_filetest.gno | 2 +- .../v1/filetests/z_get_board_01_filetest.gno | 30 ----------- .../z_get_realm_permissions_00_filetest.gno | 2 +- .../z_get_realm_permissions_01_filetest.gno | 19 ------- .../z_iterate_realm_members_00_filetest.gno | 3 +- .../gno.land/r/gnoland/boards2/v1/hub/hub.gno | 52 ++++++++----------- .../r/gnoland/boards2/v1/protected.gno | 47 +++-------------- 7 files changed, 34 insertions(+), 121 deletions(-) delete mode 100644 examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_01_filetest.gno delete mode 100644 examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_01_filetest.gno diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno index 829e28f587a..c7cd816c1ba 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno @@ -23,7 +23,7 @@ func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) // Calling as a Boards2 sub realm should succeed - board, found := boards2.GetBoard(cross(cur), bid) + board, found := boards2.GetBoard(bid) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_01_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_01_filetest.gno deleted file mode 100644 index 2d78a7d9e43..00000000000 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_01_filetest.gno +++ /dev/null @@ -1,30 +0,0 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_get_board_01_filetest - -package z_get_board_01_filetest - -import ( - "testing" - - "gno.land/p/gnoland/boards" - - boards2 "gno.land/r/gnoland/boards2/v1" -) - -const owner address = "g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh" - -var bid boards.ID - -func init(cur realm) { - testing.SetRealm(testing.NewUserRealm(owner)) - bid = boards2.CreateBoard(cross(cur), "test123", false, false) -} - -func main(cur realm) { - testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/test")) - - // Calling as a non Boards2 sub realm should fail - boards2.GetBoard(cross(cur), bid) -} - -// Error: -// forbidden, caller should live within "gno.land/r/gnoland/boards2/" namespace diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno index fefca7985fd..02519a4bece 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno @@ -10,7 +10,7 @@ import ( func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - perms := boards2.GetRealmPermissions(cross(cur)) + perms := boards2.GetRealmPermissions() println(perms != nil) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_01_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_01_filetest.gno deleted file mode 100644 index db96923cfec..00000000000 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_01_filetest.gno +++ /dev/null @@ -1,19 +0,0 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_01_filetest - -package z_get_realm_permissions_01_filetest - -import ( - "testing" - - boards2 "gno.land/r/gnoland/boards2/v1" -) - -func main(cur realm) { - testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/test")) - - // Calling as a non Boards2 sub realm should fail - _ = boards2.GetRealmPermissions(cross(cur)) -} - -// Error: -// forbidden, caller should live within "gno.land/r/gnoland/boards2/" namespace diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno index 32dcff56340..a2bb6a9bcc6 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno @@ -23,8 +23,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - // Calling as a Boards2 sub realm should succeed - perms := boards2.GetRealmPermissions(cross(cur)) + perms := boards2.GetRealmPermissions() perms.IterateUsers(0, perms.UsersCount(), func(u boards.User) bool { println(u.Address, string(u.Roles[0])) return false diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno index b99a9c3a8a7..4ee7568b4d8 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno @@ -1,14 +1,10 @@ // Package hub exposes safe, read-only views over boards2's persistent // state. The Get* functions are crossing functions: callers must invoke -// them with `cross` (e.g. `hub.GetBoard(cross, id)`). The crossing into -// hub gives each call a live `cur` whose `Previous()` is the caller's -// realm — that's what boards2's protected entry points use for the -// namespace check. +// them with `cross` (e.g. `hub.GetBoard(cross, id)`). // -// Note for future maintainers: inside a Get* body, `cur.Previous()` is -// the *immediate* caller's realm, which may be an intermediary, not -// necessarily the end user. Do not graft user-identity gating onto -// these reads. +// Note for future maintainers: these reads perform no caller +// authorization — boards2's read entry points are unguarded — so do not +// graft user-identity gating onto them. package hub import ( @@ -19,7 +15,7 @@ import ( // GetBoard returns a safe board. func GetBoard(cur realm, id uint64) (Board, bool) { - b, found := getBoard(0, cur, id) + b, found := getBoard(id) if !found { return Board{}, false } @@ -28,7 +24,7 @@ func GetBoard(cur realm, id uint64) (Board, bool) { // GetThread returns a safe board thread. func GetThread(cur realm, boardID, threadID uint64) (Thread, bool) { - t, found := getThread(0, cur, boardID, threadID) + t, found := getThread(boardID, threadID) if !found { return Thread{}, false } @@ -37,7 +33,7 @@ func GetThread(cur realm, boardID, threadID uint64) (Thread, bool) { // GetComment returns a safe thread comment. func GetComment(cur realm, boardID, threadID, commentID uint64) (Comment, bool) { - c, found := getComment(0, cur, boardID, threadID, commentID) + c, found := getComment(boardID, threadID, commentID) if !found { return Comment{}, false } @@ -48,7 +44,7 @@ func GetComment(cur realm, boardID, threadID, commentID uint64) (Comment, bool) // To reverse iterate use a negative count. func GetBoards(cur realm, start, count int) []Board { var boards_ []Board - boards2.Iterate(cross(cur), start, count, func(b *boards.Board) bool { + boards2.Iterate(start, count, func(b *boards.Board) bool { boards_ = append(boards_, NewSafeBoard(b)) return false }) @@ -58,7 +54,7 @@ func GetBoards(cur realm, start, count int) []Board { // GetThreads returns a list with threads of a board. // To reverse iterate use a negative count. func GetThreads(cur realm, boardID uint64, start, count int) []Thread { - b, found := getBoard(0, cur, boardID) + b, found := getBoard(boardID) if !found { return nil } @@ -74,7 +70,7 @@ func GetThreads(cur realm, boardID uint64, start, count int) []Thread { // GetMembers returns a list with the members of a board. // To reverse iterate use a negative count. func GetMembers(cur realm, boardID uint64, start, count int) []boards.User { - b, found := getBoard(0, cur, boardID) + b, found := getBoard(boardID) if !found { return nil } @@ -90,14 +86,14 @@ func GetMembers(cur realm, boardID uint64, start, count int) []boards.User { // GetReposts returns a list with repost of a board thread. // To reverse iterate use a negative count. func GetReposts(cur realm, boardID, threadID uint64, start, count int) []Thread { - t, found := getThread(0, cur, boardID, threadID) + t, found := getThread(boardID, threadID) if !found { return nil } var reposts []Thread t.Reposts.Iterate(start, count, func(rBoardID, rRepostID boards.ID) bool { - r, found := getThread(0, cur, uint64(rBoardID), uint64(rRepostID)) + r, found := getThread(uint64(rBoardID), uint64(rRepostID)) if found { reposts = append(reposts, NewSafeThread(r)) } @@ -112,14 +108,14 @@ func GetReposts(cur realm, boardID, threadID uint64, start, count int) []Thread func GetFlags(cur realm, boardID, threadID, commentID uint64, start, count int) []boards.Flag { var storage boards.FlagStorage if commentID == 0 { - t, found := getThread(0, cur, boardID, threadID) + t, found := getThread(boardID, threadID) if !found { return nil } storage = t.Flags } else { - c, found := getComment(0, cur, boardID, threadID, commentID) + c, found := getComment(boardID, threadID, commentID) if !found { return nil } @@ -140,7 +136,7 @@ func GetFlags(cur realm, boardID, threadID, commentID uint64, start, count int) // Top level comments can be filtered by checking `Comment.ParentID`, replies // always have a parent comment or reply, while comments have no parent. func GetComments(cur realm, boardID, threadID uint64, start, count int) []Comment { - t, found := getThread(0, cur, boardID, threadID) + t, found := getThread(boardID, threadID) if !found { return nil } @@ -156,7 +152,7 @@ func GetComments(cur realm, boardID, threadID uint64, start, count int) []Commen // GetReplies returns a list with top level comment replies. // To reverse iterate use a negative count. func GetReplies(cur realm, boardID, threadID, commentID uint64, start, count int) []Comment { - c, found := getComment(0, cur, boardID, threadID, commentID) + c, found := getComment(boardID, threadID, commentID) if !found { return nil } @@ -169,15 +165,13 @@ func GetReplies(cur realm, boardID, threadID, commentID uint64, start, count int return replies } -// getBoard fetches a raw *boards.Board via boards2's protected -// GetBoard. Non-crossing helper: rlm is hub's own cur, threaded -// through from the enclosing crossing function. -func getBoard(_ int, rlm realm, boardID uint64) (*boards.Board, bool) { - return boards2.GetBoard(cross(rlm), boards.ID(boardID)) +// getBoard fetches a raw *boards.Board from boards2. +func getBoard(boardID uint64) (*boards.Board, bool) { + return boards2.GetBoard(boards.ID(boardID)) } -func getThread(_ int, rlm realm, boardID, threadID uint64) (*boards.Post, bool) { - b, found := getBoard(0, rlm, boardID) +func getThread(boardID, threadID uint64) (*boards.Post, bool) { + b, found := getBoard(boardID) if !found { return nil, false } @@ -191,8 +185,8 @@ func getThread(_ int, rlm realm, boardID, threadID uint64) (*boards.Post, bool) return t, found } -func getComment(_ int, rlm realm, boardID, threadID, commentID uint64) (*boards.Post, bool) { - t, found := getThread(0, rlm, boardID, threadID) +func getComment(boardID, threadID, commentID uint64) (*boards.Post, bool) { + t, found := getThread(boardID, threadID) if !found { return nil, false } diff --git a/examples/gno.land/r/gnoland/boards2/v1/protected.gno b/examples/gno.land/r/gnoland/boards2/v1/protected.gno index 1d7c5ca39d0..6a7cc18cfc1 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/protected.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/protected.gno @@ -1,40 +1,28 @@ -// The `protected.gno` file contains public realm functions that must only be called -// from realms that live within the Boards2 package namespace. This allows sub realms -// to access boards data to be able to migrate content from one version to another or -// to implement specific features in separate sub realms. +// The `protected.gno` file contains public realm functions that expose Boards2 +// data to other realms. This allows sub realms to access boards data to be able +// to migrate content from one version to another or to implement specific +// features in separate sub realms. package boards2 import ( - "strings" - "gno.land/p/gnoland/boards" ) // TODO: Authorize sub realms to be able to call protected functions (use DAOs) -// boardsNS is the package-path namespace shared by all Boards2 versions. -// Update as part of each version bump. -const boardsNS = "gno.land/r/gnoland/boards2/" - // GetRealmPermissions returns Boards2 realm permissions. -// This is a protected function only callable by Boards2 sub realms. -func GetRealmPermissions(cur realm) boards.Permissions { - assertCallerHasBoardsNS(0, cur) +func GetRealmPermissions() boards.Permissions { return gPerms } // GetBoard returns a board. -// This is a protected function only callable by Boards2 sub realms. -func GetBoard(cur realm, boardID boards.ID) (_ *boards.Board, found bool) { - assertCallerHasBoardsNS(0, cur) +func GetBoard(boardID boards.ID) (_ *boards.Board, found bool) { return gBoards.Get(boardID) } // MustGetBoard returns a board or panics on error. -// This is a protected function only callable by Boards2 sub realms. -func MustGetBoard(cur realm, boardID boards.ID) *boards.Board { - assertCallerHasBoardsNS(0, cur) +func MustGetBoard(boardID boards.ID) *boards.Board { return mustGetBoard(boardID) } @@ -42,25 +30,6 @@ func MustGetBoard(cur realm, boardID boards.ID) *boards.Board { // Iteration is done for all boards, including the ones that are not listed. // To reverse iterate boards use a negative count. // If the callback returns true, iteration is stopped. -func Iterate(cur realm, start, count int, fn boards.BoardIterFn) bool { - assertCallerHasBoardsNS(0, cur) +func Iterate(start, count int, fn boards.BoardIterFn) bool { return gBoards.Iterate(start, count, fn) } - -// assertCallerHasBoardsNS panics unless the caller realm's PkgPath -// lives within the Boards2 namespace. Callers pass their own live cur; -// the helper enforces rlm.IsCurrent() and derives the caller as -// rlm.Previous() internally. This mirrors the Transfer/AddMember -// pattern (see docs/resources/gno-security.md): receive the live cur, -// extract Previous() inside, never trust a stale-or-stashed realm -// value's PkgPath(). -// -// _ int discriminator keeps this helper non-crossing. -func assertCallerHasBoardsNS(_ int, rlm realm) { - if !rlm.IsCurrent() { - panic("unauthorized: rlm is not the caller's live cur") - } - if !strings.HasPrefix(rlm.Previous().PkgPath(), boardsNS) { - panic("forbidden, caller should live within \"" + boardsNS + "\" namespace") - } -} From 685d5c7676b166aa0eb4b328cc46c3afdb94e3cd Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 13:57:50 +0200 Subject: [PATCH 2/7] chore: boards2/hub: Remove cur realm from all public API Signed-off-by: Jeff Thompson --- .../v1/hub/filetests/z_0_a_filetest.gno | 2 +- .../v1/hub/filetests/z_0_b_filetest.gno | 2 +- .../v1/hub/filetests/z_1_a_filetest.gno | 2 +- .../v1/hub/filetests/z_1_b_filetest.gno | 2 +- .../v1/hub/filetests/z_1_c_filetest.gno | 2 +- .../v1/hub/filetests/z_2_a_filetest.gno | 2 +- .../v1/hub/filetests/z_2_b_filetest.gno | 2 +- .../v1/hub/filetests/z_3_a_filetest.gno | 2 +- .../v1/hub/filetests/z_3_b_filetest.gno | 4 ++-- .../v1/hub/filetests/z_4_a_filetest.gno | 4 ++-- .../v1/hub/filetests/z_5_a_filetest.gno | 4 ++-- .../v1/hub/filetests/z_5_b_filetest.gno | 4 ++-- .../v1/hub/filetests/z_6_a_filetest.gno | 2 +- .../v1/hub/filetests/z_6_b_filetest.gno | 2 +- .../v1/hub/filetests/z_6_c_filetest.gno | 4 ++-- .../v1/hub/filetests/z_6_d_filetest.gno | 4 ++-- .../v1/hub/filetests/z_7_a_filetest.gno | 4 ++-- .../v1/hub/filetests/z_7_b_filetest.gno | 4 ++-- .../v1/hub/filetests/z_8_a_filetest.gno | 4 ++-- .../v1/hub/filetests/z_8_b_filetest.gno | 4 ++-- .../v1/hub/filetests/z_9_a_filetest.gno | 2 +- .../v1/hub/filetests/z_9_b_filetest.gno | 2 +- .../gno.land/r/gnoland/boards2/v1/hub/hub.gno | 23 +++++++++---------- 23 files changed, 43 insertions(+), 44 deletions(-) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno index 97d1be82a1c..0c01b17ab3e 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno @@ -21,7 +21,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, found := hub.GetBoard(cross(cur), uint64(boardID)) + board, found := hub.GetBoard(uint64(boardID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno index 53af7cc9383..ce1032432dc 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno @@ -33,7 +33,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, found := hub.GetBoard(cross(cur), uint64(boardID)) + board, found := hub.GetBoard(uint64(boardID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno index cadb5e75c9f..b416ac59ffb 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno @@ -25,7 +25,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, found := hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, found := hub.GetThread(uint64(boardID), uint64(threadID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno index 8187f70cb08..454fff8d1de 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno @@ -41,7 +41,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, found := hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, found := hub.GetThread(uint64(boardID), uint64(threadID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno index ebc6b20bc63..885f3a789ea 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno @@ -44,7 +44,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, found := hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, found := hub.GetThread(uint64(boardID), uint64(threadID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno index c846ea33c61..e07858dcc12 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno @@ -12,7 +12,7 @@ import ( func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - boards := hub.GetBoards(cross(cur), 0, boards2.BoardCount()) + boards := hub.GetBoards(0, boards2.BoardCount()) println(len(boards)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno index a04c69bd5fe..634f6b95cb9 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno @@ -19,7 +19,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - boards := hub.GetBoards(cross(cur), 0, boards2.BoardCount()) + boards := hub.GetBoards(0, boards2.BoardCount()) for _, b := range boards { println(b.ID, b.Name) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno index 88334952830..340572fa739 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno @@ -21,7 +21,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - boards := hub.GetThreads(cross(cur), uint64(boardID), 0, boards2.BoardCount()) + boards := hub.GetThreads(uint64(boardID), 0, boards2.BoardCount()) println(len(boards)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno index 4113e50c34b..8e691b426a7 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno @@ -23,12 +23,12 @@ func init(cur realm) { // Get readonly board testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, _ = hub.GetBoard(cross(cur), uint64(boardID)) + board, _ = hub.GetBoard(uint64(boardID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - threads := hub.GetThreads(cross(cur), board.ID, 0, board.ThreadCount) + threads := hub.GetThreads(board.ID, 0, board.ThreadCount) for _, t := range threads { println(t.ID, t.Title) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno index 1d9830549d8..ee74b12a49f 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno @@ -22,12 +22,12 @@ func init(cur realm) { // Get readonly board testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, _ = hub.GetBoard(cross(cur), uint64(boardID)) + board, _ = hub.GetBoard(uint64(boardID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - members := hub.GetMembers(cross(cur), board.ID, 0, board.MemberCount) + members := hub.GetMembers(board.ID, 0, board.MemberCount) for _, m := range members { println(m.Address, m.Roles) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno index f47bdf0c0ec..bad6a18bc99 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno @@ -19,12 +19,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - reposts := hub.GetReposts(cross(cur), thread.BoardID, thread.ID, 0, thread.RepostCount) + reposts := hub.GetReposts(thread.BoardID, thread.ID, 0, thread.RepostCount) println(len(reposts)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno index 83821dc547a..7f162749cb3 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno @@ -27,12 +27,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - reposts := hub.GetReposts(cross(cur), thread.BoardID, thread.ID, 0, thread.RepostCount) + reposts := hub.GetReposts(thread.BoardID, thread.ID, 0, thread.RepostCount) for _, t := range reposts { println(t.ID, t.Title) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno index 99846b8f5a8..1d5731dd833 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno @@ -25,7 +25,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(cross(cur), uint64(boardID), uint64(threadID), 0, 0, 1) + flags := hub.GetFlags(uint64(boardID), uint64(threadID), 0, 0, 1) println(len(flags)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno index e8ff1e6de2b..7a7d37b8b02 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno @@ -27,7 +27,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(cross(cur), uint64(boardID), uint64(threadID), uint64(commentID), 0, 1) + flags := hub.GetFlags(uint64(boardID), uint64(threadID), uint64(commentID), 0, 1) println(len(flags)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno index abf325bf627..510b696a923 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno @@ -40,12 +40,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(cross(cur), thread.BoardID, thread.ID, 0, 0, thread.FlagCount) + flags := hub.GetFlags(thread.BoardID, thread.ID, 0, 0, thread.FlagCount) for _, f := range flags { println(f.User, f.Reason) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno index 86f777461ab..30d61f4efaa 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno @@ -41,12 +41,12 @@ func init(cur realm) { // Get readonly comment testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, _ = hub.GetComment(cross(cur), uint64(boardID), uint64(threadID), uint64(commentID)) + comment, _ = hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(cross(cur), comment.BoardID, comment.ThreadID, comment.ID, 0, comment.FlagCount) + flags := hub.GetFlags(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.FlagCount) for _, f := range flags { println(f.User, f.Reason) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno index 231a7e1dc7b..c4b45313c64 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno @@ -19,12 +19,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comments := hub.GetComments(cross(cur), thread.BoardID, thread.ID, 0, thread.CommentCount) + comments := hub.GetComments(thread.BoardID, thread.ID, 0, thread.CommentCount) println(len(comments)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno index 16a75cd6053..5bf6720174c 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno @@ -26,12 +26,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(cross(cur), uint64(boardID), uint64(threadID)) + thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comments := hub.GetComments(cross(cur), thread.BoardID, thread.ID, 0, thread.CommentCount) + comments := hub.GetComments(thread.BoardID, thread.ID, 0, thread.CommentCount) for _, c := range comments { println(c.ID, c.Body) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno index 79810ec7d3c..dda8c31a945 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno @@ -20,12 +20,12 @@ func init(cur realm) { // Get readonly comment testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, _ = hub.GetComment(cross(cur), uint64(boardID), uint64(threadID), uint64(commentID)) + comment, _ = hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - replies := hub.GetReplies(cross(cur), comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) + replies := hub.GetReplies(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) println(len(replies)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno index 8cab620c5bc..0f2509ef753 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno @@ -27,12 +27,12 @@ func init(cur realm) { // Get readonly comment testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, _ = hub.GetComment(cross(cur), uint64(boardID), uint64(threadID), uint64(commentID)) + comment, _ = hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - replies := hub.GetReplies(cross(cur), comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) + replies := hub.GetReplies(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) for _, r := range replies { println(r.ID, r.Body) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno index fbdab9f728e..75e6e153666 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno @@ -27,7 +27,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, found := hub.GetComment(cross(cur), uint64(boardID), uint64(threadID), uint64(commentID)) + comment, found := hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno index 4264c6e66db..fc9cf2816cc 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno @@ -36,7 +36,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, found := hub.GetComment(cross(cur), uint64(boardID), uint64(threadID), uint64(commentID)) + comment, found := hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno index 4ee7568b4d8..17f9011eebb 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno @@ -1,6 +1,5 @@ // Package hub exposes safe, read-only views over boards2's persistent -// state. The Get* functions are crossing functions: callers must invoke -// them with `cross` (e.g. `hub.GetBoard(cross, id)`). +// state. The Get* functions are plain non-crossing functions. // // Note for future maintainers: these reads perform no caller // authorization — boards2's read entry points are unguarded — so do not @@ -14,7 +13,7 @@ import ( ) // GetBoard returns a safe board. -func GetBoard(cur realm, id uint64) (Board, bool) { +func GetBoard(id uint64) (Board, bool) { b, found := getBoard(id) if !found { return Board{}, false @@ -23,7 +22,7 @@ func GetBoard(cur realm, id uint64) (Board, bool) { } // GetThread returns a safe board thread. -func GetThread(cur realm, boardID, threadID uint64) (Thread, bool) { +func GetThread(boardID, threadID uint64) (Thread, bool) { t, found := getThread(boardID, threadID) if !found { return Thread{}, false @@ -32,7 +31,7 @@ func GetThread(cur realm, boardID, threadID uint64) (Thread, bool) { } // GetComment returns a safe thread comment. -func GetComment(cur realm, boardID, threadID, commentID uint64) (Comment, bool) { +func GetComment(boardID, threadID, commentID uint64) (Comment, bool) { c, found := getComment(boardID, threadID, commentID) if !found { return Comment{}, false @@ -42,7 +41,7 @@ func GetComment(cur realm, boardID, threadID, commentID uint64) (Comment, bool) // GetBoards returns a list with all boards. // To reverse iterate use a negative count. -func GetBoards(cur realm, start, count int) []Board { +func GetBoards(start, count int) []Board { var boards_ []Board boards2.Iterate(start, count, func(b *boards.Board) bool { boards_ = append(boards_, NewSafeBoard(b)) @@ -53,7 +52,7 @@ func GetBoards(cur realm, start, count int) []Board { // GetThreads returns a list with threads of a board. // To reverse iterate use a negative count. -func GetThreads(cur realm, boardID uint64, start, count int) []Thread { +func GetThreads(boardID uint64, start, count int) []Thread { b, found := getBoard(boardID) if !found { return nil @@ -69,7 +68,7 @@ func GetThreads(cur realm, boardID uint64, start, count int) []Thread { // GetMembers returns a list with the members of a board. // To reverse iterate use a negative count. -func GetMembers(cur realm, boardID uint64, start, count int) []boards.User { +func GetMembers(boardID uint64, start, count int) []boards.User { b, found := getBoard(boardID) if !found { return nil @@ -85,7 +84,7 @@ func GetMembers(cur realm, boardID uint64, start, count int) []boards.User { // GetReposts returns a list with repost of a board thread. // To reverse iterate use a negative count. -func GetReposts(cur realm, boardID, threadID uint64, start, count int) []Thread { +func GetReposts(boardID, threadID uint64, start, count int) []Thread { t, found := getThread(boardID, threadID) if !found { return nil @@ -105,7 +104,7 @@ func GetReposts(cur realm, boardID, threadID uint64, start, count int) []Thread // GetFlag returns a list with thread or comment moderation flags. // To reverse iterate use a negative count. // Thread flags are returned when `commentID` is zero, or comment flags are returned otherwise. -func GetFlags(cur realm, boardID, threadID, commentID uint64, start, count int) []boards.Flag { +func GetFlags(boardID, threadID, commentID uint64, start, count int) []boards.Flag { var storage boards.FlagStorage if commentID == 0 { t, found := getThread(boardID, threadID) @@ -135,7 +134,7 @@ func GetFlags(cur realm, boardID, threadID, commentID uint64, start, count int) // To reverse iterate use a negative count. // Top level comments can be filtered by checking `Comment.ParentID`, replies // always have a parent comment or reply, while comments have no parent. -func GetComments(cur realm, boardID, threadID uint64, start, count int) []Comment { +func GetComments(boardID, threadID uint64, start, count int) []Comment { t, found := getThread(boardID, threadID) if !found { return nil @@ -151,7 +150,7 @@ func GetComments(cur realm, boardID, threadID uint64, start, count int) []Commen // GetReplies returns a list with top level comment replies. // To reverse iterate use a negative count. -func GetReplies(cur realm, boardID, threadID, commentID uint64, start, count int) []Comment { +func GetReplies(boardID, threadID, commentID uint64, start, count int) []Comment { c, found := getComment(boardID, threadID, commentID) if !found { return nil From 20e8211480e34d52885921aeba2dfb8d2130d0e8 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 14:31:25 +0200 Subject: [PATCH 3/7] chore: boards2/hub: Move Board and other helper structs to p/gnoland/boards/exts/hub Signed-off-by: Jeff Thompson --- .../gnoland/boards/exts}/hub/board.gno | 0 .../gnoland/boards/exts}/hub/board_test.gno | 2 +- .../gnoland/boards/exts}/hub/comment.gno | 0 .../gnoland/boards/exts}/hub/comment_test.gno | 2 +- .../gnoland/boards/exts}/hub/format.gno | 0 .../p/gnoland/boards/exts/hub/gnomod.toml | 2 ++ .../gnoland/boards/exts}/hub/thread.gno | 0 .../gnoland/boards/exts}/hub/thread_test.gno | 2 +- .../gno.land/r/gnoland/boards2/v1/hub/hub.gno | 27 +++++++++++++------ 9 files changed, 24 insertions(+), 11 deletions(-) rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/board.gno (100%) rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/board_test.gno (98%) rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/comment.gno (100%) rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/comment_test.gno (98%) rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/format.gno (100%) create mode 100644 examples/gno.land/p/gnoland/boards/exts/hub/gnomod.toml rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/thread.gno (100%) rename examples/gno.land/{r/gnoland/boards2/v1 => p/gnoland/boards/exts}/hub/thread_test.gno (99%) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/board.gno b/examples/gno.land/p/gnoland/boards/exts/hub/board.gno similarity index 100% rename from examples/gno.land/r/gnoland/boards2/v1/hub/board.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/board.gno diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/board_test.gno b/examples/gno.land/p/gnoland/boards/exts/hub/board_test.gno similarity index 98% rename from examples/gno.land/r/gnoland/boards2/v1/hub/board_test.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/board_test.gno index 0ef60e79faa..fd42ef73e7a 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/board_test.gno +++ b/examples/gno.land/p/gnoland/boards/exts/hub/board_test.gno @@ -7,7 +7,7 @@ import ( "gno.land/p/gnoland/boards/exts/permissions" "gno.land/p/nt/urequire/v0" - "gno.land/r/gnoland/boards2/v1/hub" + "gno.land/p/gnoland/boards/exts/hub" ) func TestBoardIterateThreads(t *testing.T) { diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/comment.gno b/examples/gno.land/p/gnoland/boards/exts/hub/comment.gno similarity index 100% rename from examples/gno.land/r/gnoland/boards2/v1/hub/comment.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/comment.gno diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/comment_test.gno b/examples/gno.land/p/gnoland/boards/exts/hub/comment_test.gno similarity index 98% rename from examples/gno.land/r/gnoland/boards2/v1/hub/comment_test.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/comment_test.gno index f9070ae6afc..b4c0a94c93d 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/comment_test.gno +++ b/examples/gno.land/p/gnoland/boards/exts/hub/comment_test.gno @@ -6,7 +6,7 @@ import ( "gno.land/p/gnoland/boards" "gno.land/p/nt/urequire/v0" - "gno.land/r/gnoland/boards2/v1/hub" + "gno.land/p/gnoland/boards/exts/hub" ) func TestCommentIterateFlags(t *testing.T) { diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/format.gno b/examples/gno.land/p/gnoland/boards/exts/hub/format.gno similarity index 100% rename from examples/gno.land/r/gnoland/boards2/v1/hub/format.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/format.gno diff --git a/examples/gno.land/p/gnoland/boards/exts/hub/gnomod.toml b/examples/gno.land/p/gnoland/boards/exts/hub/gnomod.toml new file mode 100644 index 00000000000..bacf99f0d1d --- /dev/null +++ b/examples/gno.land/p/gnoland/boards/exts/hub/gnomod.toml @@ -0,0 +1,2 @@ +module = "gno.land/p/gnoland/boards/exts/hub" +gno = "0.9" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/thread.gno b/examples/gno.land/p/gnoland/boards/exts/hub/thread.gno similarity index 100% rename from examples/gno.land/r/gnoland/boards2/v1/hub/thread.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/thread.gno diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/thread_test.gno b/examples/gno.land/p/gnoland/boards/exts/hub/thread_test.gno similarity index 99% rename from examples/gno.land/r/gnoland/boards2/v1/hub/thread_test.gno rename to examples/gno.land/p/gnoland/boards/exts/hub/thread_test.gno index ff96acd2fd5..216ad39d6d5 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/thread_test.gno +++ b/examples/gno.land/p/gnoland/boards/exts/hub/thread_test.gno @@ -6,7 +6,7 @@ import ( "gno.land/p/gnoland/boards" "gno.land/p/nt/urequire/v0" - "gno.land/r/gnoland/boards2/v1/hub" + "gno.land/p/gnoland/boards/exts/hub" ) func TestThreadIterateFlags(t *testing.T) { diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno index 17f9011eebb..6f40ebde258 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno @@ -8,17 +8,28 @@ package hub import ( "gno.land/p/gnoland/boards" + hubexts "gno.land/p/gnoland/boards/exts/hub" boards2 "gno.land/r/gnoland/boards2/v1" ) +// Safe view types are defined in the hub extensions package and +// re-exported here so callers can keep using the hub realm types. +type ( + Board = hubexts.Board + Comment = hubexts.Comment + Flag = hubexts.Flag + Member = hubexts.Member + Thread = hubexts.Thread +) + // GetBoard returns a safe board. func GetBoard(id uint64) (Board, bool) { b, found := getBoard(id) if !found { return Board{}, false } - return NewSafeBoard(b), true + return hubexts.NewSafeBoard(b), true } // GetThread returns a safe board thread. @@ -27,7 +38,7 @@ func GetThread(boardID, threadID uint64) (Thread, bool) { if !found { return Thread{}, false } - return NewSafeThread(t), true + return hubexts.NewSafeThread(t), true } // GetComment returns a safe thread comment. @@ -36,7 +47,7 @@ func GetComment(boardID, threadID, commentID uint64) (Comment, bool) { if !found { return Comment{}, false } - return NewSafeComment(c), true + return hubexts.NewSafeComment(c), true } // GetBoards returns a list with all boards. @@ -44,7 +55,7 @@ func GetComment(boardID, threadID, commentID uint64) (Comment, bool) { func GetBoards(start, count int) []Board { var boards_ []Board boards2.Iterate(start, count, func(b *boards.Board) bool { - boards_ = append(boards_, NewSafeBoard(b)) + boards_ = append(boards_, hubexts.NewSafeBoard(b)) return false }) return boards_ @@ -60,7 +71,7 @@ func GetThreads(boardID uint64, start, count int) []Thread { var threads []Thread b.Threads.Iterate(start, count, func(thread *boards.Post) bool { - threads = append(threads, NewSafeThread(thread)) + threads = append(threads, hubexts.NewSafeThread(thread)) return false }) return threads @@ -94,7 +105,7 @@ func GetReposts(boardID, threadID uint64, start, count int) []Thread { t.Reposts.Iterate(start, count, func(rBoardID, rRepostID boards.ID) bool { r, found := getThread(uint64(rBoardID), uint64(rRepostID)) if found { - reposts = append(reposts, NewSafeThread(r)) + reposts = append(reposts, hubexts.NewSafeThread(r)) } return false }) @@ -142,7 +153,7 @@ func GetComments(boardID, threadID uint64, start, count int) []Comment { var comments []Comment t.Replies.Iterate(start, count, func(comment *boards.Post) bool { - comments = append(comments, NewSafeComment(comment)) + comments = append(comments, hubexts.NewSafeComment(comment)) return false }) return comments @@ -158,7 +169,7 @@ func GetReplies(boardID, threadID, commentID uint64, start, count int) []Comment var replies []Comment c.Replies.Iterate(start, count, func(comment *boards.Post) bool { - replies = append(replies, NewSafeComment(comment)) + replies = append(replies, hubexts.NewSafeComment(comment)) return false }) return replies From 70f1b6b3bd0b4a29253fe5c837d67471eee65ec5 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 14:38:28 +0200 Subject: [PATCH 4/7] chore: boards2/hub/filetests: Rename z_* to z_hub_*, ready to move to parent folder Signed-off-by: Jeff Thompson --- .../filetests/{z_0_a_filetest.gno => z_hub_0_a_filetest.gno} | 4 ++-- .../filetests/{z_0_b_filetest.gno => z_hub_0_b_filetest.gno} | 4 ++-- .../filetests/{z_1_a_filetest.gno => z_hub_1_a_filetest.gno} | 4 ++-- .../filetests/{z_1_b_filetest.gno => z_hub_1_b_filetest.gno} | 4 ++-- .../filetests/{z_1_c_filetest.gno => z_hub_1_c_filetest.gno} | 4 ++-- .../filetests/{z_2_a_filetest.gno => z_hub_2_a_filetest.gno} | 4 ++-- .../filetests/{z_2_b_filetest.gno => z_hub_2_b_filetest.gno} | 4 ++-- .../filetests/{z_3_a_filetest.gno => z_hub_3_a_filetest.gno} | 4 ++-- .../filetests/{z_3_b_filetest.gno => z_hub_3_b_filetest.gno} | 4 ++-- .../filetests/{z_4_a_filetest.gno => z_hub_4_a_filetest.gno} | 4 ++-- .../filetests/{z_5_a_filetest.gno => z_hub_5_a_filetest.gno} | 4 ++-- .../filetests/{z_5_b_filetest.gno => z_hub_5_b_filetest.gno} | 4 ++-- .../filetests/{z_6_a_filetest.gno => z_hub_6_a_filetest.gno} | 4 ++-- .../filetests/{z_6_b_filetest.gno => z_hub_6_b_filetest.gno} | 4 ++-- .../filetests/{z_6_c_filetest.gno => z_hub_6_c_filetest.gno} | 4 ++-- .../filetests/{z_6_d_filetest.gno => z_hub_6_d_filetest.gno} | 4 ++-- .../filetests/{z_7_a_filetest.gno => z_hub_7_a_filetest.gno} | 4 ++-- .../filetests/{z_7_b_filetest.gno => z_hub_7_b_filetest.gno} | 4 ++-- .../filetests/{z_8_a_filetest.gno => z_hub_8_a_filetest.gno} | 4 ++-- .../filetests/{z_8_b_filetest.gno => z_hub_8_b_filetest.gno} | 4 ++-- .../filetests/{z_9_a_filetest.gno => z_hub_9_a_filetest.gno} | 4 ++-- .../filetests/{z_9_b_filetest.gno => z_hub_9_b_filetest.gno} | 4 ++-- 22 files changed, 44 insertions(+), 44 deletions(-) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_0_a_filetest.gno => z_hub_0_a_filetest.gno} (89%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_0_b_filetest.gno => z_hub_0_b_filetest.gno} (92%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_1_a_filetest.gno => z_hub_1_a_filetest.gno} (92%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_1_b_filetest.gno => z_hub_1_b_filetest.gno} (94%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_1_c_filetest.gno => z_hub_1_c_filetest.gno} (94%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_2_a_filetest.gno => z_hub_2_a_filetest.gno} (76%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_2_b_filetest.gno => z_hub_2_b_filetest.gno} (86%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_3_a_filetest.gno => z_hub_3_a_filetest.gno} (85%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_3_b_filetest.gno => z_hub_3_b_filetest.gno} (90%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_4_a_filetest.gno => z_hub_4_a_filetest.gno} (92%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_5_a_filetest.gno => z_hub_5_a_filetest.gno} (88%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_5_b_filetest.gno => z_hub_5_b_filetest.gno} (92%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_6_a_filetest.gno => z_hub_6_a_filetest.gno} (87%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_6_b_filetest.gno => z_hub_6_b_filetest.gno} (88%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_6_c_filetest.gno => z_hub_6_c_filetest.gno} (94%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_6_d_filetest.gno => z_hub_6_d_filetest.gno} (94%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_7_a_filetest.gno => z_hub_7_a_filetest.gno} (88%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_7_b_filetest.gno => z_hub_7_b_filetest.gno} (91%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_8_a_filetest.gno => z_hub_8_a_filetest.gno} (90%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_8_b_filetest.gno => z_hub_8_b_filetest.gno} (92%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_9_a_filetest.gno => z_hub_9_a_filetest.gno} (92%) rename examples/gno.land/r/gnoland/boards2/v1/hub/filetests/{z_9_b_filetest.gno => z_hub_9_b_filetest.gno} (93%) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest.gno similarity index 89% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest.gno index 0c01b17ab3e..d36e7c2bafe 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest // Test default board values -package z_0_a_filetest +package z_hub_0_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest.gno similarity index 92% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest.gno index ce1032432dc..b8145b5647e 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_0_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest // Test non default board values -package z_0_b_filetest +package z_hub_0_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest.gno similarity index 92% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest.gno index b416ac59ffb..ca1563d4708 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest // Test default thread values -package z_1_a_filetest +package z_hub_1_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest.gno similarity index 94% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest.gno index 454fff8d1de..8cfdbcac11c 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest // Test non default thread values -package z_1_b_filetest +package z_hub_1_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest.gno similarity index 94% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest.gno index 885f3a789ea..cac6c936be9 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_1_c_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest // Test non default reposted thread values -package z_1_c_filetest +package z_hub_1_c_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest.gno similarity index 76% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest.gno index e07858dcc12..1558873ebbe 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest // Test getting boards when no boards exist -package z_2_a_filetest +package z_hub_2_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest.gno similarity index 86% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest.gno index 634f6b95cb9..55f69f0e461 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_2_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest // Test getting boards -package z_2_b_filetest +package z_hub_2_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest.gno similarity index 85% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest.gno index 340572fa739..287c5ca2e3a 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest // Test getting threads from an empty board -package z_3_a_filetest +package z_hub_3_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest.gno similarity index 90% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest.gno index 8e691b426a7..7153aac6175 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_3_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest // Test getting threads from a board -package z_3_b_filetest +package z_hub_3_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest.gno similarity index 92% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest.gno index ee74b12a49f..47990f7bcb5 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_4_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest // Test getting board members -package z_4_a_filetest +package z_hub_4_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest.gno similarity index 88% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest.gno index bad6a18bc99..9519253ae0b 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest // Test getting reposts from a thread without reposts -package z_5_a_filetest +package z_hub_5_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest.gno similarity index 92% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest.gno index 7f162749cb3..89ccb1e52c1 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_5_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest // Test getting reposts of a thread -package z_5_b_filetest +package z_hub_5_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest.gno similarity index 87% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest.gno index 1d5731dd833..63623c8d95e 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest // Test getting flags from an unflagged thread -package z_6_a_filetest +package z_hub_6_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest.gno similarity index 88% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest.gno index 7a7d37b8b02..ab5281405aa 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest // Test getting flags from an unflagged comment -package z_6_b_filetest +package z_hub_6_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest.gno similarity index 94% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest.gno index 510b696a923..e7cf3d3cd7d 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_c_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest // Test getting flags from a thread -package z_6_c_filetest +package z_hub_6_c_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest.gno similarity index 94% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest.gno index 30d61f4efaa..5af290340f0 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_6_d_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest // Test getting flags from a comment -package z_6_d_filetest +package z_hub_6_d_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest.gno similarity index 88% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest.gno index c4b45313c64..3bb1e4deb45 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest // Test getting comments from a thread without comments -package z_7_a_filetest +package z_hub_7_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest.gno similarity index 91% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest.gno index 5bf6720174c..9f93a7b748b 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_7_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest // Test getting comments from a thread -package z_7_b_filetest +package z_hub_7_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest.gno similarity index 90% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest.gno index dda8c31a945..06721a0b1e5 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest // Test getting replies from a comment without replies -package z_8_a_filetest +package z_hub_8_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest.gno similarity index 92% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest.gno index 0f2509ef753..2f9634b0031 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_8_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest // Test getting replies from a comment -package z_8_b_filetest +package z_hub_8_b_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest.gno similarity index 92% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest.gno index 75e6e153666..bf532b38c1e 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest // Test default thread comment values -package z_9_a_filetest +package z_hub_9_a_filetest import ( "testing" diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest.gno similarity index 93% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest.gno index fc9cf2816cc..c0d7390b916 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest.gno @@ -1,7 +1,7 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_9_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest // Test non default thread comment values -package z_9_b_filetest +package z_hub_9_b_filetest import ( "testing" From dae20b0014630a16b0c05b18647b1ba6e588eeea Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 14:50:02 +0200 Subject: [PATCH 5/7] chore: boards2/hub: Move hub.gno and filetests to main boards2/v1 folder. Signed-off-by: Jeff Thompson --- .../v1/filetests/z_get_board_00_filetest.gno | 5 +- .../filetests/z_hub_0_a_filetest.gno | 5 +- .../filetests/z_hub_0_b_filetest.gno | 5 +- .../filetests/z_hub_1_a_filetest.gno | 5 +- .../filetests/z_hub_1_b_filetest.gno | 5 +- .../filetests/z_hub_1_c_filetest.gno | 5 +- .../filetests/z_hub_2_a_filetest.gno | 5 +- .../filetests/z_hub_2_b_filetest.gno | 5 +- .../filetests/z_hub_3_a_filetest.gno | 5 +- .../filetests/z_hub_3_b_filetest.gno | 9 ++-- .../filetests/z_hub_4_a_filetest.gno | 9 ++-- .../filetests/z_hub_5_a_filetest.gno | 9 ++-- .../filetests/z_hub_5_b_filetest.gno | 9 ++-- .../filetests/z_hub_6_a_filetest.gno | 5 +- .../filetests/z_hub_6_b_filetest.gno | 5 +- .../filetests/z_hub_6_c_filetest.gno | 9 ++-- .../filetests/z_hub_6_d_filetest.gno | 9 ++-- .../filetests/z_hub_7_a_filetest.gno | 9 ++-- .../filetests/z_hub_7_b_filetest.gno | 9 ++-- .../filetests/z_hub_8_a_filetest.gno | 9 ++-- .../filetests/z_hub_8_b_filetest.gno | 9 ++-- .../filetests/z_hub_9_a_filetest.gno | 5 +- .../filetests/z_hub_9_b_filetest.gno | 5 +- .../r/gnoland/boards2/v1/{hub => }/hub.gno | 54 ++++++++----------- .../r/gnoland/boards2/v1/hub/gnomod.toml | 2 - .../r/gnoland/boards2/v1/protected.gno | 5 -- 26 files changed, 87 insertions(+), 129 deletions(-) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_0_a_filetest.gno (83%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_0_b_filetest.gno (88%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_1_a_filetest.gno (85%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_1_b_filetest.gno (90%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_1_c_filetest.gno (91%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_2_a_filetest.gno (63%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_2_b_filetest.gno (78%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_3_a_filetest.gno (73%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_3_b_filetest.gno (78%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_4_a_filetest.gno (82%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_5_a_filetest.gno (70%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_5_b_filetest.gno (79%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_6_a_filetest.gno (77%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_6_b_filetest.gno (78%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_6_c_filetest.gno (84%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_6_d_filetest.gno (83%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_7_a_filetest.gno (69%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_7_b_filetest.gno (78%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_8_a_filetest.gno (69%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_8_b_filetest.gno (77%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_9_a_filetest.gno (84%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/filetests/z_hub_9_b_filetest.gno (87%) rename examples/gno.land/r/gnoland/boards2/v1/{hub => }/hub.gno (76%) delete mode 100644 examples/gno.land/r/gnoland/boards2/v1/hub/gnomod.toml diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno index c7cd816c1ba..711e7e3aef5 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_board_00_filetest.gno @@ -22,13 +22,12 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - // Calling as a Boards2 sub realm should succeed - board, found := boards2.GetBoard(bid) + board, found := boards2.GetBoard(uint64(bid)) if !found { return } - println(board.ID == bid) + println(board.ID == uint64(bid)) } // Output: diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_a_filetest.gno similarity index 83% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_a_filetest.gno index d36e7c2bafe..f76a52cb46b 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_a_filetest // Test default board values package z_hub_0_a_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var boardID boards.ID @@ -21,7 +20,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, found := hub.GetBoard(uint64(boardID)) + board, found := boards2.GetBoard(uint64(boardID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_b_filetest.gno similarity index 88% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_b_filetest.gno index b8145b5647e..2e7f086f316 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_0_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_0_b_filetest // Test non default board values package z_hub_0_b_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var boardID boards.ID @@ -33,7 +32,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, found := hub.GetBoard(uint64(boardID)) + board, found := boards2.GetBoard(uint64(boardID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_a_filetest.gno similarity index 85% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_a_filetest.gno index ca1563d4708..c730a80e432 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_a_filetest // Test default thread values package z_hub_1_a_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -25,7 +24,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, found := hub.GetThread(uint64(boardID), uint64(threadID)) + thread, found := boards2.GetThread(uint64(boardID), uint64(threadID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_b_filetest.gno similarity index 90% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_b_filetest.gno index 8cfdbcac11c..01f6509540f 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_b_filetest // Test non default thread values package z_hub_1_b_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -41,7 +40,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, found := hub.GetThread(uint64(boardID), uint64(threadID)) + thread, found := boards2.GetThread(uint64(boardID), uint64(threadID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_c_filetest.gno similarity index 91% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_c_filetest.gno index cac6c936be9..92c3a3adb7f 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_c_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_1_c_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_1_c_filetest // Test non default reposted thread values package z_hub_1_c_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -44,7 +43,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, found := hub.GetThread(uint64(boardID), uint64(threadID)) + thread, found := boards2.GetThread(uint64(boardID), uint64(threadID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_a_filetest.gno similarity index 63% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_a_filetest.gno index 1558873ebbe..1634ae81746 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_a_filetest // Test getting boards when no boards exist package z_hub_2_a_filetest @@ -7,12 +7,11 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - boards := hub.GetBoards(0, boards2.BoardCount()) + boards := boards2.GetBoards(0, boards2.BoardCount()) println(len(boards)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_b_filetest.gno similarity index 78% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_b_filetest.gno index 55f69f0e461..28dec6ee722 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_2_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_2_b_filetest // Test getting boards package z_hub_2_b_filetest @@ -7,7 +7,6 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) func init(cur realm) { @@ -19,7 +18,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - boards := hub.GetBoards(0, boards2.BoardCount()) + boards := boards2.GetBoards(0, boards2.BoardCount()) for _, b := range boards { println(b.ID, b.Name) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_a_filetest.gno similarity index 73% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_a_filetest.gno index 287c5ca2e3a..990738a95f0 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_a_filetest // Test getting threads from an empty board package z_hub_3_a_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var boardID boards.ID @@ -21,7 +20,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - boards := hub.GetThreads(uint64(boardID), 0, boards2.BoardCount()) + boards := boards2.GetThreads(uint64(boardID), 0, boards2.BoardCount()) println(len(boards)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_b_filetest.gno similarity index 78% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_b_filetest.gno index 7153aac6175..5acb417877c 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_3_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_3_b_filetest // Test getting threads from a board package z_hub_3_b_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var board hub.Board +var board boards2.Board func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -23,12 +22,12 @@ func init(cur realm) { // Get readonly board testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, _ = hub.GetBoard(uint64(boardID)) + board, _ = boards2.GetBoard(uint64(boardID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - threads := hub.GetThreads(board.ID, 0, board.ThreadCount) + threads := boards2.GetThreads(board.ID, 0, board.ThreadCount) for _, t := range threads { println(t.ID, t.Title) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_4_a_filetest.gno similarity index 82% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_4_a_filetest.gno index 47990f7bcb5..20a0fe51e78 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_4_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_4_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_4_a_filetest // Test getting board members package z_hub_4_a_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var board hub.Board +var board boards2.Board func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -22,12 +21,12 @@ func init(cur realm) { // Get readonly board testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - board, _ = hub.GetBoard(uint64(boardID)) + board, _ = boards2.GetBoard(uint64(boardID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - members := hub.GetMembers(board.ID, 0, board.MemberCount) + members := boards2.GetMembers(board.ID, 0, board.MemberCount) for _, m := range members { println(m.Address, m.Roles) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_a_filetest.gno similarity index 70% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_a_filetest.gno index 9519253ae0b..b21fe758d06 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_a_filetest // Test getting reposts from a thread without reposts package z_hub_5_a_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var thread hub.Thread +var thread boards2.Thread func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -19,12 +18,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) + thread, _ = boards2.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - reposts := hub.GetReposts(thread.BoardID, thread.ID, 0, thread.RepostCount) + reposts := boards2.GetReposts(thread.BoardID, thread.ID, 0, thread.RepostCount) println(len(reposts)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_b_filetest.gno similarity index 79% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_b_filetest.gno index 89ccb1e52c1..de79b2dd0d0 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_5_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_5_b_filetest // Test getting reposts of a thread package z_hub_5_b_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var thread hub.Thread +var thread boards2.Thread func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -27,12 +26,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) + thread, _ = boards2.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - reposts := hub.GetReposts(thread.BoardID, thread.ID, 0, thread.RepostCount) + reposts := boards2.GetReposts(thread.BoardID, thread.ID, 0, thread.RepostCount) for _, t := range reposts { println(t.ID, t.Title) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_a_filetest.gno similarity index 77% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_a_filetest.gno index 63623c8d95e..5ba6d25264e 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_a_filetest // Test getting flags from an unflagged thread package z_hub_6_a_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -25,7 +24,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(uint64(boardID), uint64(threadID), 0, 0, 1) + flags := boards2.GetFlags(uint64(boardID), uint64(threadID), 0, 0, 1) println(len(flags)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_b_filetest.gno similarity index 78% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_b_filetest.gno index ab5281405aa..ba7006786c5 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_b_filetest // Test getting flags from an unflagged comment package z_hub_6_b_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -27,7 +26,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(uint64(boardID), uint64(threadID), uint64(commentID), 0, 1) + flags := boards2.GetFlags(uint64(boardID), uint64(threadID), uint64(commentID), 0, 1) println(len(flags)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_c_filetest.gno similarity index 84% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_c_filetest.gno index e7cf3d3cd7d..1547f3fbcd9 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_c_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_c_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_c_filetest // Test getting flags from a thread package z_hub_6_c_filetest @@ -7,7 +7,6 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) const ( @@ -16,7 +15,7 @@ const ( moderator = "g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj" ) -var thread hub.Thread +var thread boards2.Thread func init(cur realm) { testing.SetRealm(testing.NewUserRealm(owner)) @@ -40,12 +39,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) + thread, _ = boards2.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(thread.BoardID, thread.ID, 0, 0, thread.FlagCount) + flags := boards2.GetFlags(thread.BoardID, thread.ID, 0, 0, thread.FlagCount) for _, f := range flags { println(f.User, f.Reason) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_d_filetest.gno similarity index 83% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_d_filetest.gno index 5af290340f0..7042863f13d 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_d_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_6_d_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_6_d_filetest // Test getting flags from a comment package z_hub_6_d_filetest @@ -7,7 +7,6 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) const ( @@ -16,7 +15,7 @@ const ( moderator = "g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj" ) -var comment hub.Comment +var comment boards2.Comment func init(cur realm) { testing.SetRealm(testing.NewUserRealm(owner)) @@ -41,12 +40,12 @@ func init(cur realm) { // Get readonly comment testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, _ = hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) + comment, _ = boards2.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - flags := hub.GetFlags(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.FlagCount) + flags := boards2.GetFlags(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.FlagCount) for _, f := range flags { println(f.User, f.Reason) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_a_filetest.gno similarity index 69% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_a_filetest.gno index 3bb1e4deb45..26520f245e0 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_a_filetest // Test getting comments from a thread without comments package z_hub_7_a_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var thread hub.Thread +var thread boards2.Thread func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -19,12 +18,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) + thread, _ = boards2.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comments := hub.GetComments(thread.BoardID, thread.ID, 0, thread.CommentCount) + comments := boards2.GetComments(thread.BoardID, thread.ID, 0, thread.CommentCount) println(len(comments)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_b_filetest.gno similarity index 78% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_b_filetest.gno index 9f93a7b748b..d176d0d9e82 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_7_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_7_b_filetest // Test getting comments from a thread package z_hub_7_b_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var thread hub.Thread +var thread boards2.Thread func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -26,12 +25,12 @@ func init(cur realm) { // Get readonly thread testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - thread, _ = hub.GetThread(uint64(boardID), uint64(threadID)) + thread, _ = boards2.GetThread(uint64(boardID), uint64(threadID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comments := hub.GetComments(thread.BoardID, thread.ID, 0, thread.CommentCount) + comments := boards2.GetComments(thread.BoardID, thread.ID, 0, thread.CommentCount) for _, c := range comments { println(c.ID, c.Body) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_a_filetest.gno similarity index 69% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_a_filetest.gno index 06721a0b1e5..834d44dc4f6 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_a_filetest // Test getting replies from a comment without replies package z_hub_8_a_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var comment hub.Comment +var comment boards2.Comment func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -20,12 +19,12 @@ func init(cur realm) { // Get readonly comment testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, _ = hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) + comment, _ = boards2.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - replies := hub.GetReplies(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) + replies := boards2.GetReplies(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) println(len(replies)) } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_b_filetest.gno similarity index 77% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_b_filetest.gno index 2f9634b0031..a58bf47e8eb 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_8_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_8_b_filetest // Test getting replies from a comment package z_hub_8_b_filetest @@ -7,10 +7,9 @@ import ( "testing" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) -var comment hub.Comment +var comment boards2.Comment func init(cur realm) { testing.SetRealm(testing.NewUserRealm("g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh")) @@ -27,12 +26,12 @@ func init(cur realm) { // Get readonly comment testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, _ = hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) + comment, _ = boards2.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) } func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - replies := hub.GetReplies(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) + replies := boards2.GetReplies(comment.BoardID, comment.ThreadID, comment.ID, 0, comment.ReplyCount) for _, r := range replies { println(r.ID, r.Body) diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_a_filetest.gno similarity index 84% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_a_filetest.gno index bf532b38c1e..c545970b558 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_a_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_a_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_a_filetest // Test default thread comment values package z_hub_9_a_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -27,7 +26,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, found := hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) + comment, found := boards2.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_b_filetest.gno similarity index 87% rename from examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest.gno rename to examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_b_filetest.gno index c0d7390b916..6715182b7c9 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_b_filetest.gno @@ -1,4 +1,4 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/hub/filetests/z_hub_9_b_filetest +// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_hub_9_b_filetest // Test non default thread comment values package z_hub_9_b_filetest @@ -9,7 +9,6 @@ import ( "gno.land/p/gnoland/boards" boards2 "gno.land/r/gnoland/boards2/v1" - "gno.land/r/gnoland/boards2/v1/hub" ) var ( @@ -36,7 +35,7 @@ func init(cur realm) { func main(cur realm) { testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - comment, found := hub.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) + comment, found := boards2.GetComment(uint64(boardID), uint64(threadID), uint64(commentID)) if !found { return } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno b/examples/gno.land/r/gnoland/boards2/v1/hub.gno similarity index 76% rename from examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno rename to examples/gno.land/r/gnoland/boards2/v1/hub.gno index 6f40ebde258..b25cd663079 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/hub.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/hub.gno @@ -1,20 +1,18 @@ -// Package hub exposes safe, read-only views over boards2's persistent -// state. The Get* functions are plain non-crossing functions. +// The `hub.gno` file exposes safe, read-only views over the realm's +// persistent state. // // Note for future maintainers: these reads perform no caller -// authorization — boards2's read entry points are unguarded — so do not -// graft user-identity gating onto them. -package hub +// authorization, so do not graft user-identity gating onto them. + +package boards2 import ( "gno.land/p/gnoland/boards" hubexts "gno.land/p/gnoland/boards/exts/hub" - - boards2 "gno.land/r/gnoland/boards2/v1" ) // Safe view types are defined in the hub extensions package and -// re-exported here so callers can keep using the hub realm types. +// re-exported here so callers can keep using them via this realm. type ( Board = hubexts.Board Comment = hubexts.Comment @@ -25,7 +23,7 @@ type ( // GetBoard returns a safe board. func GetBoard(id uint64) (Board, bool) { - b, found := getBoard(id) + b, found := gBoards.Get(boards.ID(id)) if !found { return Board{}, false } @@ -34,7 +32,7 @@ func GetBoard(id uint64) (Board, bool) { // GetThread returns a safe board thread. func GetThread(boardID, threadID uint64) (Thread, bool) { - t, found := getThread(boardID, threadID) + t, found := getBoardThread(boardID, threadID) if !found { return Thread{}, false } @@ -54,7 +52,7 @@ func GetComment(boardID, threadID, commentID uint64) (Comment, bool) { // To reverse iterate use a negative count. func GetBoards(start, count int) []Board { var boards_ []Board - boards2.Iterate(start, count, func(b *boards.Board) bool { + gBoards.Iterate(start, count, func(b *boards.Board) bool { boards_ = append(boards_, hubexts.NewSafeBoard(b)) return false }) @@ -64,7 +62,7 @@ func GetBoards(start, count int) []Board { // GetThreads returns a list with threads of a board. // To reverse iterate use a negative count. func GetThreads(boardID uint64, start, count int) []Thread { - b, found := getBoard(boardID) + b, found := gBoards.Get(boards.ID(boardID)) if !found { return nil } @@ -80,7 +78,7 @@ func GetThreads(boardID uint64, start, count int) []Thread { // GetMembers returns a list with the members of a board. // To reverse iterate use a negative count. func GetMembers(boardID uint64, start, count int) []boards.User { - b, found := getBoard(boardID) + b, found := gBoards.Get(boards.ID(boardID)) if !found { return nil } @@ -96,14 +94,14 @@ func GetMembers(boardID uint64, start, count int) []boards.User { // GetReposts returns a list with repost of a board thread. // To reverse iterate use a negative count. func GetReposts(boardID, threadID uint64, start, count int) []Thread { - t, found := getThread(boardID, threadID) + t, found := getBoardThread(boardID, threadID) if !found { return nil } var reposts []Thread t.Reposts.Iterate(start, count, func(rBoardID, rRepostID boards.ID) bool { - r, found := getThread(uint64(rBoardID), uint64(rRepostID)) + r, found := getBoardThread(uint64(rBoardID), uint64(rRepostID)) if found { reposts = append(reposts, hubexts.NewSafeThread(r)) } @@ -118,7 +116,7 @@ func GetReposts(boardID, threadID uint64, start, count int) []Thread { func GetFlags(boardID, threadID, commentID uint64, start, count int) []boards.Flag { var storage boards.FlagStorage if commentID == 0 { - t, found := getThread(boardID, threadID) + t, found := getBoardThread(boardID, threadID) if !found { return nil } @@ -146,7 +144,7 @@ func GetFlags(boardID, threadID, commentID uint64, start, count int) []boards.Fl // Top level comments can be filtered by checking `Comment.ParentID`, replies // always have a parent comment or reply, while comments have no parent. func GetComments(boardID, threadID uint64, start, count int) []Comment { - t, found := getThread(boardID, threadID) + t, found := getBoardThread(boardID, threadID) if !found { return nil } @@ -175,28 +173,18 @@ func GetReplies(boardID, threadID, commentID uint64, start, count int) []Comment return replies } -// getBoard fetches a raw *boards.Board from boards2. -func getBoard(boardID uint64) (*boards.Board, bool) { - return boards2.GetBoard(boards.ID(boardID)) -} - -func getThread(boardID, threadID uint64) (*boards.Post, bool) { - b, found := getBoard(boardID) +// getBoardThread returns a board thread from their IDs. +func getBoardThread(boardID, threadID uint64) (*boards.Post, bool) { + b, found := gBoards.Get(boards.ID(boardID)) if !found { return nil, false } - - t, found := b.Threads.Get(boards.ID(threadID)) - if !found { - // When thread is not found search it within hidden threads - meta := b.Meta.(*boards2.BoardMeta) - t, found = meta.HiddenThreads.Get(boards.ID(threadID)) - } - return t, found + return getThread(b, boards.ID(threadID)) } +// getComment returns a thread comment from their IDs. func getComment(boardID, threadID, commentID uint64) (*boards.Post, bool) { - t, found := getThread(boardID, threadID) + t, found := getBoardThread(boardID, threadID) if !found { return nil, false } diff --git a/examples/gno.land/r/gnoland/boards2/v1/hub/gnomod.toml b/examples/gno.land/r/gnoland/boards2/v1/hub/gnomod.toml deleted file mode 100644 index 68de66e6e3e..00000000000 --- a/examples/gno.land/r/gnoland/boards2/v1/hub/gnomod.toml +++ /dev/null @@ -1,2 +0,0 @@ -module = "gno.land/r/gnoland/boards2/v1/hub" -gno = "0.9" diff --git a/examples/gno.land/r/gnoland/boards2/v1/protected.gno b/examples/gno.land/r/gnoland/boards2/v1/protected.gno index 6a7cc18cfc1..c833379af0d 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/protected.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/protected.gno @@ -16,11 +16,6 @@ func GetRealmPermissions() boards.Permissions { return gPerms } -// GetBoard returns a board. -func GetBoard(boardID boards.ID) (_ *boards.Board, found bool) { - return gBoards.Get(boardID) -} - // MustGetBoard returns a board or panics on error. func MustGetBoard(boardID boards.ID) *boards.Board { return mustGetBoard(boardID) From a6bb0b3a1cfa6413590f477b99109350f6a9f89a Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 15:10:34 +0200 Subject: [PATCH 6/7] chore: boards2: protected.gno: Remove unused MustGetBoard and Iterate Signed-off-by: Jeff Thompson --- .../gno.land/r/gnoland/boards2/v1/protected.gno | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/examples/gno.land/r/gnoland/boards2/v1/protected.gno b/examples/gno.land/r/gnoland/boards2/v1/protected.gno index c833379af0d..038c5254864 100644 --- a/examples/gno.land/r/gnoland/boards2/v1/protected.gno +++ b/examples/gno.land/r/gnoland/boards2/v1/protected.gno @@ -15,16 +15,3 @@ import ( func GetRealmPermissions() boards.Permissions { return gPerms } - -// MustGetBoard returns a board or panics on error. -func MustGetBoard(boardID boards.ID) *boards.Board { - return mustGetBoard(boardID) -} - -// Iterate iterates boards. -// Iteration is done for all boards, including the ones that are not listed. -// To reverse iterate boards use a negative count. -// If the callback returns true, iteration is stopped. -func Iterate(start, count int, fn boards.BoardIterFn) bool { - return gBoards.Iterate(start, count, fn) -} From 908b4504bf57a58fc106deca4869acd30286976c Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 11 Jun 2026 15:48:03 +0200 Subject: [PATCH 7/7] chore: Remove oversimplified GetRealmPermissions and its filetests Signed-off-by: Jeff Thompson --- .../z_get_realm_permissions_00_filetest.gno | 18 ---------- .../z_iterate_realm_members_00_filetest.gno | 35 ------------------- .../r/gnoland/boards2/v1/protected.gno | 17 --------- 3 files changed, 70 deletions(-) delete mode 100644 examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno delete mode 100644 examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno delete mode 100644 examples/gno.land/r/gnoland/boards2/v1/protected.gno diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno deleted file mode 100644 index 02519a4bece..00000000000 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest.gno +++ /dev/null @@ -1,18 +0,0 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_get_realm_permissions_00_filetest - -package z_get_realm_permissions_00_filetest - -import ( - "testing" - - boards2 "gno.land/r/gnoland/boards2/v1" -) - -func main(cur realm) { - testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - perms := boards2.GetRealmPermissions() - println(perms != nil) -} - -// Output: -// true diff --git a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno b/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno deleted file mode 100644 index a2bb6a9bcc6..00000000000 --- a/examples/gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest.gno +++ /dev/null @@ -1,35 +0,0 @@ -// PKGPATH: gno.land/r/gnoland/boards2/v1/filetests/z_iterate_realm_members_00_filetest - -package z_iterate_realm_members_00_filetest - -import ( - "testing" - - "gno.land/p/gnoland/boards" - - boards2 "gno.land/r/gnoland/boards2/v1" -) - -const ( - owner address = "g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh" - bid = boards.ID(0) // Operate on realm DAO instead of individual boards -) - -func init(cur realm) { - testing.SetRealm(testing.NewUserRealm(owner)) - boards2.InviteMember(cross(cur), bid, "g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj", boards2.RoleAdmin) -} - -func main(cur realm) { - testing.SetRealm(testing.NewCodeRealm("gno.land/r/gnoland/boards2/test")) - - perms := boards2.GetRealmPermissions() - perms.IterateUsers(0, perms.UsersCount(), func(u boards.User) bool { - println(u.Address, string(u.Roles[0])) - return false - }) -} - -// Output: -// g1rp7cmetn27eqlpjpc4vuusf8kaj746tysc0qgh owner -// g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj admin diff --git a/examples/gno.land/r/gnoland/boards2/v1/protected.gno b/examples/gno.land/r/gnoland/boards2/v1/protected.gno deleted file mode 100644 index 038c5254864..00000000000 --- a/examples/gno.land/r/gnoland/boards2/v1/protected.gno +++ /dev/null @@ -1,17 +0,0 @@ -// The `protected.gno` file contains public realm functions that expose Boards2 -// data to other realms. This allows sub realms to access boards data to be able -// to migrate content from one version to another or to implement specific -// features in separate sub realms. - -package boards2 - -import ( - "gno.land/p/gnoland/boards" -) - -// TODO: Authorize sub realms to be able to call protected functions (use DAOs) - -// GetRealmPermissions returns Boards2 realm permissions. -func GetRealmPermissions() boards.Permissions { - return gPerms -}