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/p/moul/addrset/v0

Package
Open in gnoweb ↗

Overview

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

Files (5)

  • gnomod.tomltoml
  • addrset.gnogno
  • readonly.gnogno
  • addrset_test.gnogno
  • readonly_test.gnogno
readonly_test.gnogno
1package addrset23import (4	"testing"56	"gno.land/p/nt/uassert/v0"7)89func TestReadonlySet(t *testing.T) {10	addr1 := address("addr1")11	addr2 := address("addr2")12	addr3 := address("addr3")1314	var set Set15	set.Add(addr1)16	set.Add(addr2)1718	ro := set.Readonly()19	uassert.Equal(t, 2, ro.Size())20	uassert.True(t, ro.Has(addr1))21	uassert.True(t, ro.Has(addr2))22	uassert.False(t, ro.Has(addr3))2324	// NewReadonlySet is equivalent to Set.Readonly.25	ro2 := NewReadonlySet(&set)26	uassert.Equal(t, 2, ro2.Size())27	uassert.True(t, ro2.Has(addr1))2829	// The view is a live handle, not a snapshot.30	set.Add(addr3)31	uassert.Equal(t, 3, ro.Size())32	uassert.True(t, ro.Has(addr3))33	set.Remove(addr1)34	uassert.False(t, ro.Has(addr1))35}3637func TestReadonlySetIterateByOffset(t *testing.T) {38	var set Set39	set.Add(address("addr2"))40	set.Add(address("addr1"))41	set.Add(address("addr3"))42	ro := set.Readonly()4344	var got []address45	stopped := ro.IterateByOffset(0, 10, func(a address) bool {46		got = append(got, a)47		return false48	})49	uassert.False(t, stopped)50	uassert.Equal(t, 3, len(got))51	uassert.Equal(t, address("addr1"), got[0]) // sorted order52	uassert.Equal(t, address("addr2"), got[1])53	uassert.Equal(t, address("addr3"), got[2])5455	// offset/count window.56	got = nil57	ro.IterateByOffset(1, 1, func(a address) bool {58		got = append(got, a)59		return false60	})61	uassert.Equal(t, 1, len(got))62	uassert.Equal(t, address("addr2"), got[0])6364	// Early stop is reported, and iteration actually halts.65	count := 066	stopped = ro.IterateByOffset(0, 10, func(a address) bool {67		count++68		return true69	})70	uassert.True(t, stopped)71	uassert.Equal(t, 1, count)7273	// Empty set: callback never runs, not stopped.74	var empty Set75	stopped = empty.Readonly().IterateByOffset(0, 10, func(a address) bool { return true })76	uassert.False(t, stopped)77}7879func TestReadonlySetReverseIterateByOffset(t *testing.T) {80	var set Set81	set.Add(address("addr1"))82	set.Add(address("addr2"))83	set.Add(address("addr3"))84	ro := set.Readonly()8586	var got []address87	stopped := ro.ReverseIterateByOffset(0, 10, func(a address) bool {88		got = append(got, a)89		return false90	})91	uassert.False(t, stopped)92	uassert.Equal(t, 3, len(got))93	uassert.Equal(t, address("addr3"), got[0]) // descending order94	uassert.Equal(t, address("addr2"), got[1])95	uassert.Equal(t, address("addr1"), got[2])9697	// offset/count window (offset from the end).98	got = nil99	ro.ReverseIterateByOffset(1, 1, func(a address) bool {100		got = append(got, a)101		return false102	})103	uassert.Equal(t, 1, len(got))104	uassert.Equal(t, address("addr2"), got[0])105106	// Early stop is reported, and iteration actually halts.107	count := 0108	stopped = ro.ReverseIterateByOffset(0, 10, func(a address) bool {109		count++110		return true111	})112	uassert.True(t, stopped)113	uassert.Equal(t, 1, count)114}115

Functions

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

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