PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

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/p/nt/ownable/v0

Package
Open in gnoweb ↗

Overview

Kind
Pure package
Name
v0
Namespace
nt / ownable
Files
6 (README)(gnomod.toml)
Exported functions
n/a — not supported for pure packages by the node (vm/qfuncs)
Module
gno.land/p/nt/ownable/v0
gno
0.9

Files (6)

  • README.mdmarkdown
  • gnomod.tomltoml
  • doc.gnogno
  • errors.gnogno
  • ownable.gnogno
  • ownable_test.gnogno
ownable_test.gnogno
1package ownable23import (4	"testing"56	"gno.land/p/nt/testutils/v0"7	"gno.land/p/nt/uassert/v0"8	"gno.land/p/nt/urequire/v0"9)1011var (12	alice = testutils.TestAddress("alice")13	bob   = testutils.TestAddress("bob")14)1516func TestNewWithAddress(cur realm, t *testing.T) {17	o := NewWithAddress(alice)1819	got := o.Owner()20	uassert.Equal(t, got, alice)21}2223func TestTransferOwnership(cur realm, t *testing.T) {24	testing.SetRealm(testing.NewUserRealm(alice))25	o := NewWithAddress(alice)26	func(cur realm) {27		err := o.TransferOwnership(0, cur, bob)28		urequire.NoError(t, err)29	}(cross(cur))3031	got := o.Owner()32	uassert.Equal(t, got, bob)33}3435func TestTransferOwnershipUnauthorized(cur realm, t *testing.T) {36	o := NewWithAddress(alice)3738	testing.SetRealm(testing.NewUserRealm(bob))39	func(cur realm) {40		uassert.ErrorContains(t, o.TransferOwnership(0, cur, bob), ErrUnauthorized.Error())41	}(cross(cur))42}4344func TestDropOwnership(cur realm, t *testing.T) {45	testing.SetRealm(testing.NewUserRealm(alice))46	o := NewWithAddress(alice)47	func(cur realm) {48		err := o.DropOwnership(0, cur)49		urequire.NoError(t, err, "DropOwnership failed")50	}(cross(cur))5152	owner := o.Owner()53	uassert.Empty(t, owner, "owner should be empty")54}5556func TestDropOwnershipUnauthorized(cur realm, t *testing.T) {57	o := NewWithAddress(alice)5859	testing.SetRealm(testing.NewUserRealm(bob))60	func(cur realm) {61		uassert.ErrorContains(t, o.DropOwnership(0, cur), ErrUnauthorized.Error())62	}(cross(cur))63}6465func TestOwnedBy(cur realm, t *testing.T) {66	o := NewWithAddress(alice)67	uassert.True(t, o.OwnedBy(alice))68	uassert.False(t, o.OwnedBy(bob))69}7071func TestAssertOwnedBy(cur realm, t *testing.T) {72	o := NewWithAddress(alice)7374	// Should not panic.75	o.AssertOwnedBy(alice)7677	uassert.PanicsWithMessage(t, cur, ErrUnauthorized.Error(), func() {78		o.AssertOwnedBy(bob)79	})80}8182func TestErrInvalidAddress(cur realm, t *testing.T) {83	testing.SetRealm(testing.NewUserRealm(alice))84	o := NewWithAddress(alice)85	func(cur realm) {86		err := o.TransferOwnership(0, cur, "")87		uassert.ErrorContains(t, err, ErrInvalidAddress.Error())8889		err = o.TransferOwnership(0, cur, "10000000001000000000100000000010000000001000000000")90		uassert.ErrorContains(t, err, ErrInvalidAddress.Error())91	}(cross(cur))92}9394func TestNilReceiver(cur realm, t *testing.T) {95	var o *Ownable9697	owner := o.Owner()98	if owner != address("") {99		t.Errorf("expected empty address but got %v", owner)100	}101102	isOwner := o.OwnedBy(alice)103	uassert.False(t, isOwner)104105	defer func() {106		r := recover()107		if r == nil {108			t.Error("expected panic but got none")109		}110		if r != ErrUnauthorized {111			t.Errorf("expected ErrUnauthorized but got %v", r)112		}113	}()114	o.AssertOwnedBy(alice)115}116

Functions

not supported for pure packages by the node (vm/qfuncs)

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