-
Notifications
You must be signed in to change notification settings - Fork 389
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: added usage of ownable and art
- Loading branch information
1 parent
b755bc7
commit d7fec48
Showing
9 changed files
with
161 additions
and
158 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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") | ||
} | ||
} |
This file was deleted.
Oops, something went wrong.
Empty file.