Skip to content

Commit

Permalink
update home, update config - first nvim coded realms :)
Browse files Browse the repository at this point in the history
  • Loading branch information
leohhhn committed Jan 24, 2025
1 parent 8e1c532 commit ead9e92
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 42 deletions.
69 changes: 33 additions & 36 deletions examples/gno.land/r/leon/config/config.gno
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,58 @@ package config
import (
"errors"
"std"

"gno.land/p/demo/avl"
"gno.land/p/demo/ownable"
"gno.land/p/demo/ufmt"
"gno.land/p/moul/md"
)

var (
main std.Address // leon's main address
backup std.Address // backup address
configs = avl.NewTree()

OwnableMain = ownable.NewWithAddress("g125em6arxsnj49vx35f0n0z34putv5ty3376fg5")
OwnableBackup = ownable.NewWithAddress("g125em6arxsnj49vx35f0n0z34putv5ty3376fg5")

ErrInvalidAddr = errors.New("leon's config: invalid address")
ErrUnauthorized = errors.New("leon's config: unauthorized")
)

func init() {
main = "g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"
}

func Address() std.Address {
return main
}
func AddConfig(name, lines string) {
if !IsAuthorized(std.PrevRealm().Addr()) {
panic(ErrUnauthorized)
}

func Backup() std.Address {
return backup
configs.Set(name, lines) // allows overwrite
}

func SetAddress(a std.Address) error {
if !a.IsValid() {
return ErrInvalidAddr
func RemoveConfig(name string) {
if !IsAuthorized(std.PrevRealm().Addr()) {
panic(ErrUnauthorized)
}

if err := checkAuthorized(); err != nil {
return err
if _, ok := configs.Remove(name); !ok {
panic("no config with that name")
}
}

main = a
return nil
func IsAuthorized(addr std.Address) bool {
return addr == OwnableMain.Owner() || addr == OwnableBackup.Owner()
}

func SetBackup(a std.Address) error {
if !a.IsValid() {
return ErrInvalidAddr
}
func Render(_ string) (out string) {
out += md.H1("Leon's config Package")

if err := checkAuthorized(); err != nil {
return err
}
out += ufmt.Sprintf("Leon's main address: %s\n\n", OwnableMain.Owner().String())
out += ufmt.Sprintf("Leon's backup address: %s\n\n", OwnableBackup.Owner().String())

backup = a
return nil
}
out += md.H2("Leon's configs")

func checkAuthorized() error {
caller := std.PrevRealm().Addr()
isAuthorized := caller == main || caller == backup
configs.Iterate("", "", func(key string, value interface{}) bool {
out += ufmt.Sprintf("## %s\n\n", key)
out += ufmt.Sprintf("```\n%s\n```", value.(string))

if !isAuthorized {
return ErrUnauthorized
}
return false
})

return nil
return out
}
8 changes: 2 additions & 6 deletions examples/gno.land/r/leon/home/home.gno
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ TODO import r/gh
}

func UpdatePFP(url, caption string) {
if !isAuthorized(std.PrevRealm().Addr()) {
if !config.IsAuthorized(std.PrevRealm().Addr()) {
panic(config.ErrUnauthorized)
}

Expand All @@ -48,7 +48,7 @@ func UpdatePFP(url, caption string) {
}

func UpdateAboutMe(col1, col2 string) {
if !isAuthorized(std.PrevRealm().Addr()) {
if !config.IsAuthorized(std.PrevRealm().Addr()) {
panic(config.ErrUnauthorized)
}

Expand Down Expand Up @@ -130,7 +130,3 @@ func renderMillipede() string {

return out
}

func isAuthorized(addr std.Address) bool {
return addr == config.Address() || addr == config.Backup()
}

0 comments on commit ead9e92

Please sign in to comment.