PathrockNetwork Gno Explorer
HomeBlocksTransactionsRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/r/gnoswap/rbac/v1

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
v1
Namespace
gnoswap / rbac
Files
9 (README)(gnomod.toml)
Exported functions
11
Module
gno.land/r/gnoswap/rbac/v1
gno
0.9

Files (9)

  • README.mdmarkdown
  • gnomod.tomltoml
  • assert.gnogno
  • consts.gnogno
  • errors.gnogno
  • ownership.gnogno
  • rbac.gnogno
  • render.gnogno
  • role.gnogno
  • assert.gnogno
    1package rbac23import (4	"strings"56	ufmt "gno.land/p/nt/ufmt/v0"78	prbac "gno.land/p/gnoswap/rbac/v1"9)1011// assertIsOwner panics if address is not the current owner.12func assertIsOwner(addr address) {13	if manager.Owner() != addr {14		panic(makeErrorWithDetails(15			errCallerIsNotOwner,16			ufmt.Sprintf("caller: %s", addr.String()),17		))18	}19}2021// assertIsPendingOwner panics if address is not the pending owner.22func assertIsPendingOwner(addr address) {23	if manager.PendingOwner() != addr {24		panic(makeErrorWithDetails(25			errCallerIsNotPendingOwner,26			ufmt.Sprintf("caller: %s", addr.String()),27		))28	}29}3031// assertIsAdmin panics if address is not authorized for admin role.32func assertIsAdmin(addr address) {33	if !manager.IsAuthorized(prbac.ROLE_ADMIN.String(), addr) {34		panic(35			makeErrorWithDetails(36				errCallerIsNotAdmin,37				ufmt.Sprintf("caller: %s", addr.String()),38			),39		)40	}41}4243// assertIsValidRoleName panics if roleName is invalid (empty or whitespace-only).44func assertIsValidRoleName(roleName string) {45	if strings.TrimSpace(roleName) == "" {46		panic(makeErrorWithDetails(47			errInvalidRoleName,48			ufmt.Sprintf("role name: %q", roleName),49		))50	}51}5253func assertIsValidAddress(addr address) {54	if !addr.IsValid() {55		panic(makeErrorWithDetails(56			errInvalidAddress,57			ufmt.Sprintf("address: %s", addr.String()),58		))59	}60}6162func assertNotAdminRole(roleName string) {63	if strings.TrimSpace(roleName) == prbac.ROLE_ADMIN.String() {64		panic(makeErrorWithDetails(65			errAdminRoleUpdateForbidden,66			ufmt.Sprintf("role name: %s", roleName),67		))68	}69}7071func assertIsAdminOrGovernance(addr address) {72	if manager.IsAuthorized(prbac.ROLE_ADMIN.String(), addr) || manager.IsAuthorized(prbac.ROLE_GOVERNANCE.String(), addr) {73		return74	}7576	panic(makeErrorWithDetails(77		errCallerIsNotAdminOrGovernance,78		ufmt.Sprintf("caller: %s", addr.String()),79	))80}81

    Functions

    • AcceptOwnership(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string})

    • GetOwner() string

    • GetPendingOwner() string

    • GetRoleAddress(roleName string) (string, interface {Error func() string})

    • IsOwner(addr string) bool

    • IsPendingOwner(addr string) bool

    • RegisterRole(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, roleName string, roleAddress string)

    • RemoveRole(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, roleName string)

    • Render(path string) string

    • TransferOwnership(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, addr string)

    • UpdateRoleAddress(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, roleName string, addr string)

    Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.

    Rendered

    RenderedRawgnoweb ↗

    vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.