Skip to content

Commit

Permalink
feat: added usage of ownable and art
Browse files Browse the repository at this point in the history
  • Loading branch information
JJOptimist committed Jan 10, 2025
1 parent b755bc7 commit d7fec48
Show file tree
Hide file tree
Showing 9 changed files with 161 additions and 158 deletions.
51 changes: 0 additions & 51 deletions examples/gno.land/r/jjoptimist/config.gno

This file was deleted.

5 changes: 0 additions & 5 deletions examples/gno.land/r/jjoptimist/gno.mod

This file was deleted.

32 changes: 0 additions & 32 deletions examples/gno.land/r/jjoptimist/home.gno

This file was deleted.

35 changes: 35 additions & 0 deletions examples/gno.land/r/jjoptimist/home/config.gno
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package home

import (
"std"
"gno.land/p/demo/ownable"
)

var config = struct {
title string
description string
github string
}{
title: "JJOptimist's Home Realm 🏠",
description: "Exploring Gno and building on-chain",
github: "jjoptimist",
}

var o = ownable.NewWithAddress(std.Address("g16vfw3r7zuz43fhky3xfsuc2hdv9tnhvlkyn0nj"))

func GetConfig() struct { title string; description string; github string } {
return config
}

func UpdateConfig(newTitle, newDescription, newGithub string) {
if !o.CallerIsOwner() {
panic("not authorized")
}
config.title = newTitle
config.description = newDescription
config.github = newGithub
}

func GetOwner() std.Address {
return o.Owner()
}
5 changes: 5 additions & 0 deletions examples/gno.land/r/jjoptimist/home/gno.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module gno.land/r/jjoptimist

require (
gno.land/p/demo/ownable v0.0.0
)
80 changes: 80 additions & 0 deletions examples/gno.land/r/jjoptimist/home/home.gno
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package home

import (
"time"
"std"
"strconv"
)

var (
creation time.Time
gnomeArt1 = ` /\
/ \
,,,,,
(o.o)
(\_/)
-"-"-`

gnomeArt2 = ` /\
/ \
,,,,,
(^.^)
(\_/)
-"-`

gnomeArt3 = ` /\
/ \
,,,,,
(*.*)
(\_/)
"-"-"`

gnomeArt4 = ` /\
/ \
,,,,,
(o.~)
(\_/)
-"-`
)

func getGnomeArt(height int64) string {
var art string
if height%7 == 0 {
art = gnomeArt4 // winking gnome
} else if height%5 == 0 {
art = gnomeArt3 // starry-eyed gnome
} else if height%3 == 0 {
art = gnomeArt2 // happy gnome
} else if height%2 == 0 {
art = gnomeArt1 // regular gnome
} else {
art = gnomeArt1 // default
}
return "```\n" + art + "\n```\n"
}

func init() {
creation = time.Now()
}

func Render(path string) string {
cfg := GetConfig()
height := std.GetHeight()

output := "# " + cfg.title + "\n\n"

output += "## About Me\n"
output += "- 👋 Hi, I'm JJOptimist\n"
output += getGnomeArt(height)
output += "- 🌱 " + cfg.description + "\n"

output += "## Contact\n"
output += "- 📫 GitHub: [" + cfg.github + "](https://github.com/" + cfg.github + ")\n"

output += "\n---\n"
output += "_Realm created: " + creation.Format("2006-01-02 15:04:05 UTC") + "_\n"
output += "_Owner: " + GetOwner().String() + "_\n"
output += "_Current Block Height: " + strconv.Itoa(int(height)) + "_"

return output
}
41 changes: 41 additions & 0 deletions examples/gno.land/r/jjoptimist/home/home_test.gno
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package home

import (
"std"
"testing"
)

func TestOwnership(t *testing.T) {
owner := GetOwner()
if owner.String() != "g16vfw3r7zuz43fhky3xfsuc2hdv9tnhvlkyn0nj" {
t.Errorf("Expected owner to be g16vfw3r7zuz43fhky3xfsuc2hdv9tnhvlkyn0nj, got %s", owner.String())
}

std.TestSetOrigCaller(owner)
if !o.CallerIsOwner() {
t.Error("Owner address should return true for CallerIsOwner check")
}

nonOwner := std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5")
std.TestSetOrigCaller(nonOwner)
if o.CallerIsOwner() {
t.Error("Non-owner address should return false for CallerIsOwner check")
}
}

func TestConfig(t *testing.T) {
cfg := GetConfig()

if cfg.title != "JJOptimist's Home Realm 🏠" {
t.Errorf("Expected title to be 'JJOptimist's Home Realm 🏠', got %s", cfg.title)
}
if cfg.description != "Exploring Gno and building on-chain" {
t.Errorf("Expected description to be 'Exploring Gno and building on-chain', got %s", cfg.description)
}
if cfg.github != "jjoptimist" {
t.Errorf("Expected github to be 'jjoptimist', got %s", cfg.github)
}
if cfg.css != styles {
t.Errorf("Expected css to match styles constant")
}
}
70 changes: 0 additions & 70 deletions examples/gno.land/r/jjoptimist/home_test.gno

This file was deleted.

Empty file added mykey_backup.armor
Empty file.

0 comments on commit d7fec48

Please sign in to comment.