# Reproducible Test for https://github.com/gnolang/gno/issues/1588 gnoland start # add contract gnokey maketx addpkg -pkgdir $WORK -pkgpath gno.land/r/demo/xx -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1 stdout OK! gnokey maketx call -pkgpath gno.land/r/demo/xx -func Store -args 2024-01-01T10:00:00+01:00 -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1 stdout OK! gnokey maketx call -pkgpath gno.land/r/demo/xx -func Read -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1 stdout OK! -- gno.mod -- module gno.land/r/demo/xx require ( gno.land/p/demo/avl v0.0.0-latest gno.land/p/demo/ufmt v0.0.0-latest ) -- realm.gno -- package xx import ( "gno.land/p/demo/avl" "gno.land/p/demo/ufmt" "time" ) var ( storageTree avl.Tree index = 0 ) type Post struct { CreatedAt time.Time } func Store(date string) { var parsedTime time.Time var err error if date != "" { parsedTime, err = time.Parse(time.RFC3339, date) if err != nil { panic(err) } } else { parsedTime = time.Now() } post := &Post{ CreatedAt: parsedTime, } storageTree.Set(ufmt.Sprintf("%d", index), post) index++ } func Read() string { out := "" for i := 0; i < index; i++ { rawPost, _ := storageTree.Get(ufmt.Sprintf("%d", i)) post := rawPost.(*Post) out += post.CreatedAt.Format(time.RFC3339) out += "\n\n" } return out }