Skip to content

Instantly share code, notes, and snippets.

@thehowl
Last active January 26, 2024 09:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thehowl/f0ca7715705998116c2c88a6811a692f to your computer and use it in GitHub Desktop.
Save thehowl/f0ca7715705998116c2c88a6811a692f to your computer and use it in GitHub Desktop.
$ go test -v -run 'Testdata/1588' .
=== RUN TestTestdata
=== RUN TestTestdata/issue-1588
testscript.go:534: WORK=$WORK
PATH=/usr/lib/go/bin:/home/howl/bin:/home/howl/go/bin:/home/howl/.yarn/bin:/home/howl/.npm-packages/bin:/home/howl/go/bin:/home/howl/.yarn/bin:/home/howl/.npm-packages/bin:/home/howl/.asdf/shims:/home/howl/.local/share/asdf/bin:/home/howl/bin:/home/howl/go/bin:/home/howl/.yarn/bin:/home/howl/.npm-packages/bin:/home/howl/.cargo/bin:/home/howl/.nvm/versions/node/v16.18.0/bin:/home/howl/go/bin:/home/howl/.yarn/bin:/home/howl/.npm-packages/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/howl/py/bin:/home/howl/py/bin
GOTRACEBACK=system
HOME=/no-home
TMPDIR=$WORK/.tmp
devnull=/dev/null
/=/
:=:
$=$
GOCOVERDIR=
exe=
SID=1ad3c900
USER_SEED_test1=source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast
USER_ADDR_test1=g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5
USER_SEED_test2=copper patrol hundred boss split uncover churn thumb repair term slice kiwi claim such heavy opinion lens custom oblige card mix chalk cabbage apology
USER_ADDR_test2=g1ukh8fgwqf6z6jdaq42culqmk9gcrxzggff03ka
USER_SEED_test3=misery artefact harbor retire toast trick source drip liberty ability rate shield ecology carbon sort arrive caught develop end verb banana burst ancient veteran
USER_ADDR_test3=g1j652n7pq4wj46pug88t37vh5fff00ajdqvaqds
USER_SEED_test4=math young still true chief sleep wedding enlist employ birth admit arch crash lucky melt away glance angle student random dose scale sail great
USER_ADDR_test4=g1sakzavnx9gwzq699ey948xfyaa42mv084mfj0n
GNOROOT=/home/howl/oc/gno
GNOHOME=/home/howl/throw/tmp/TestTestdata1695870077/001/gno
# Reproducible Test for https://github.com/gnolang/gno/issues/1588 (2.470s)
> gnoland start
[stdout]
node started successfully
# add contract (0.826s)
> gnokey maketx addpkg -pkgdir $WORK -pkgpath gno.land/r/demo/xx -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
[stdout]
OK!
GAS WANTED: 2000000
GAS USED: 504785
[stderr]
Enter password.
> 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!
GAS WANTED: 2000000
GAS USED: 583151
[stderr]
Enter password.
> stdout OK!
> gnokey maketx call -pkgpath gno.land/r/demo/xx -func Read -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
[stderr]
Enter password.
"gnokey" error: --= Error =--
Data: interface conversion: gnolang.Type is *gnolang.PointerType, not *gnolang.ArrayType
Msg Traces:
0 /home/howl/oc/gno/tm2/pkg/crypto/keys/client/maketx.go:177 - deliver transaction failed: log:msg:0,success:false,log:--= Error =--
Data: &errors.errorString{s:"interface conversion: gnolang.Type is *gnolang.PointerType, not *gnolang.ArrayType"}
Msg Traces:
0 /home/howl/oc/gno/gno.land/pkg/sdk/vm/keeper.go:279 - VM call panic: interface conversion: gnolang.Type is *gnolang.PointerType, not *gnolang.ArrayType
Machine:
CheckTypes: false
Op: [OpHalt OpBody OpForLoop OpAddAssign OpBody OpAssign OpBody OpExec OpExec OpExec OpExec OpExec OpExec OpExec OpValueDecl OpBody OpPopBlock OpBody OpPopBlock OpIfCond OpBinary1 OpBinary1 OpPrecall OpNeq OpEval]
Values: (len: 6)
#5 (&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)
#4 (typeval{bool} type{})
#3 (<time.Time>.locabs(t time.Time)(name string,offset int,abs uint64) func()(name string,offset int,abs uint64))
#2 (<time.Time>.AppendFormat(t time.Time,b []uint8,layout string)( []uint8) func(b []uint8,layout string)( []uint8))
#1 (<time.Time>.Format(t time.Time,layout string)( string) func(layout string)( string))
#0 (Read func()( string))
Exprs:
#4 (const (nil *time.zone))
#3 l<VPBlock(3,4)>.cacheZone != (const (nil *time.zone))
#2 (const-type bool)(l<VPBlock(3,4)>.cacheZone != (const (nil *time.zone)))
#1 (const-type bool)(l<VPBlock(3,4)>.cacheZone != (const (nil *time.zone))) && (const-type bool)(l<VPBlock(3,4)>.cacheStart <= sec<VPBlock(3,5)>)
#0 (const-type bool)(l<VPBlock(3,4)>.cacheZone != (const (nil *time.zone))) && (const-type bool)(l<VPBlock(3,4)>.cacheStart <= sec<VPBlock(3,5)>) && (const-type bool)(sec<VPBlock(3,5)> < l<VPBlock(3,4)>.cacheEnd)
Stmts:
#13 bodyStmt[0/0/1]=sec<VPBlock(2,5)> += (const-type int64)(offset<VPBlock(2,2)>)*
#12 bodyStmt[0/0/4]=abs<VPBlock(1,3)> = (const-type uint64)(sec<VPBlock(1,5)> + (const (9223372028715321600 int64)))
#11 var name<VPBlock(1,4)>, offset<VPBlock(1,5)>, abs<VPBlock(1,6)> = t<VPBlock(1,0)>.locabs()
#10 var year<VPBlock(1,7)> (const-type int) = (const (-1 int))
#9 var month<VPBlock(1,8)> Month<VPBlock(3,5)>
#8 var day<VPBlock(1,9)> (const-type int)
#7 var yday<VPBlock(1,10)> (const-type int)
#6 var hour<VPBlock(1,11)> (const-type int) = (const (-1 int))
#5 var min<VPBlock(1,12)> (const-type int)
#4 var sec<VPBlock(1,13)> (const-type int)
#3 bodyStmt[0/0/1]=for ; (const-type bool)(layout<VPBlock(2,2)> != (const ("" string))); { prefix<VPBlock(1,0)>, std<VPBlock(1,1)>, suffix<VPBlock(1,2)> := nextStdChunk<VPBlock(4,11)>(layout<VPBlock(2,2)>); if (const-type bool)(prefix<VPBlock(2,0)> != (const ("" string))) { b<VPBlock(3,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(3,1)>, (const-type []uint8)(prefix<VPBlock(2,0)>)...) }; if (const-type bool)(std<VPBlock(2,1)> == (const (0 int))) { break }; layout<VPBlock(2,2)> = suffix<VPBlock(1,2)>; if (const-type bool)(year<VPBlock(3,7)> < (const (0 int))) && (const-type bool)(std<VPBlock(2,1)> & (const (256 int)) != (const (0 int))) { year<VPBlock(3,7)>, month<VPBlock(3,8)>, day<VPBlock(3,9)>, yday<VPBlock(3,10)> = absDate<VPBlock(5,44)>(abs<VPBlock(3,6)>, (const (true bool))); yday<VPBlock(3,10)>++ }; if (const-type bool)(hour<VPBlock(3,11)> < (const (0 int))) && (const-type bool)(std<VPBlock(2,1)> & (const (512 int)) != (const (0 int))) { hour<VPBlock(3,11)>, min<VPBlock(3,12)>, sec<VPBlock(3,13)> = absClock<VPBlock(5,38)>(abs<VPBlock(3,6)>) }; switch std<VPBlock(2,1)> & (const (65535 int)) { case (const (276 int)): y<VPBlock(1,0)> := year<VPBlock(3,7)>; if (const-type bool)(y<VPBlock(2,0)> < (const (0 int))) { y<VPBlock(2,0)> = -y<VPBlock(2,0)> }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, y<VPBlock(1,0)> %!!(MISSING)((MISSING)const (100 int)), (const (2 int))); case (const (275 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, year<VPBlock(3,7)>, (const (4 int))); case (const (258 int)): b<VPBlock(3,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(3,1)>, (const-type []uint8)(month<VPBlock(3,8)>.String()[:(const (3 int))])...); case (const (257 int)): m<VPBlock(1,0)> := month<VPBlock(3,8)>.String(); b<VPBlock(3,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(3,1)>, (const-type []uint8)(m<VPBlock(1,0)>)...); case (const (259 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, (const-type int)(month<VPBlock(3,8)>), (const (0 int))); case (const (260 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, (const-type int)(month<VPBlock(3,8)>), (const (2 int))); case (const (262 int)): b<VPBlock(3,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(3,1)>, (const-type []uint8)(absWeekday<VPBlock(5,37)>(abs<VPBlock(3,6)>).String()[:(const (3 int))])...); case (const (261 int)): s<VPBlock(1,0)> := absWeekday<VPBlock(5,37)>(abs<VPBlock(3,6)>).String(); b<VPBlock(3,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(3,1)>, (const-type []uint8)(s<VPBlock(1,0)>)...); case (const (263 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, day<VPBlock(3,9)>, (const (0 int))); case (const (264 int)): if (const-type bool)(day<VPBlock(4,9)> < (const (10 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (32 uint8))) }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, day<VPBlock(3,9)>, (const (0 int))); case (const (265 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, day<VPBlock(3,9)>, (const (2 int))); case (const (266 int)): if (const-type bool)(yday<VPBlock(4,10)> < (const (100 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (32 uint8))); if (const-type bool)(yday<VPBlock(5,10)> < (const (10 int))) { b<VPBlock(5,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(5,1)>, (const (32 uint8))) } }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, yday<VPBlock(3,10)>, (const (0 int))); case (const (267 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, yday<VPBlock(3,10)>, (const (3 int))); case (const (524 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, hour<VPBlock(3,11)>, (const (2 int))); case (const (525 int)): hr<VPBlock(1,0)> := hour<VPBlock(3,11)> %!!(MISSING)((MISSING)const (12 int)); if (const-type bool)(hr<VPBlock(2,0)> == (const (0 int))) { hr<VPBlock(2,0)> = (const (12 int)) }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, hr<VPBlock(1,0)>, (const (0 int))); case (const (526 int)): hr<VPBlock(1,0)> := hour<VPBlock(3,11)> %!!(MISSING)((MISSING)const (12 int)); if (const-type bool)(hr<VPBlock(2,0)> == (const (0 int))) { hr<VPBlock(2,0)> = (const (12 int)) }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, hr<VPBlock(1,0)>, (const (2 int))); case (const (527 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, min<VPBlock(3,12)>, (const (0 int))); case (const (528 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, min<VPBlock(3,12)>, (const (2 int))); case (const (529 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, sec<VPBlock(3,13)>, (const (0 int))); case (const (530 int)): b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, sec<VPBlock(3,13)>, (const (2 int))); case (const (533 int)): if (const-type bool)(hour<VPBlock(4,11)> >= (const (12 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (slice[0x504D] ...uint8))...) } else { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (slice[0x414D] ...uint8))...) }; case (const (534 int)): if (const-type bool)(hour<VPBlock(4,11)> >= (const (12 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (slice[0x706D] ...uint8))...) } else { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (slice[0x616D] ...uint8))...) }; case (const (24 int)), (const (27 int)), (const (25 int)), (const (26 int)), (const (28 int)), (const (29 int)), (const (32 int)), (const (30 int)), (const (31 int)), (const (33 int)): if (const-type bool)(offset<VPBlock(4,5)> == (const (0 int))) && (const-type bool)(std<VPBlock(3,1)> == (const (24 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (27 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (25 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (26 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (28 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (90 uint8))); break }; zone<VPBlock(1,0)> := offset<VPBlock(3,5)> / (const (60 int)); absoffset<VPBlock(1,1)> := offset<VPBlock(3,5)>; if (const-type bool)(zone<VPBlock(2,0)> < (const (0 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (45 uint8))); zone<VPBlock(2,0)> = -zone<VPBlock(2,0)>; absoffset<VPBlock(2,1)> = -absoffset<VPBlock(2,1)> } else { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (43 uint8))) }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, zone<VPBlock(1,0)> / (const (60 int)), (const (2 int))); if (const-type bool)(std<VPBlock(3,1)> == (const (27 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (32 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (28 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (33 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (58 uint8))) }; if (const-type bool)(std<VPBlock(3,1)> != (const (31 int))) && (const-type bool)(std<VPBlock(3,1)> != (const (26 int))) { b<VPBlock(4,1)> = appendInt<VPBlock(6,14)>(b<VPBlock(4,1)>, zone<VPBlock(2,0)> %!!(MISSING)((MISSING)const (60 int)), (const (2 int))) }; if (const-type bool)(std<VPBlock(3,1)> == (const (25 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (30 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (33 int))) || (const-type bool)(std<VPBlock(3,1)> == (const (28 int))) { if (const-type bool)(std<VPBlock(4,1)> == (const (33 int))) || (const-type bool)(std<VPBlock(4,1)> == (const (28 int))) { b<VPBlock(5,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(5,1)>, (const (58 uint8))) }; b<VPBlock(4,1)> = appendInt<VPBlock(6,14)>(b<VPBlock(4,1)>, absoffset<VPBlock(2,1)> %!!(MISSING)((MISSING)const (60 int)), (const (2 int))) }; case (const (23 int)): if (const-type bool)(name<VPBlock(4,4)> != (const ("" string))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const-type []uint8)(name<VPBlock(4,4)>)...); break }; zone<VPBlock(1,0)> := offset<VPBlock(3,5)> / (const (60 int)); if (const-type bool)(zone<VPBlock(2,0)> < (const (0 int))) { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (45 uint8))); zone<VPBlock(2,0)> = -zone<VPBlock(2,0)> } else { b<VPBlock(4,1)> = (const (append func(x []uint8,args ...uint8)(res []uint8)))(b<VPBlock(4,1)>, (const (43 uint8))) }; b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, zone<VPBlock(1,0)> / (const (60 int)), (const (2 int))); b<VPBlock(3,1)> = appendInt<VPBlock(5,14)>(b<VPBlock(3,1)>, zone<VPBlock(1,0)> %!!(MISSING)((MISSING)const (60 int)), (const (2 int))); case (const (34 int)), (const (35 int)): b<VPBlock(3,1)> = formatNano<VPBlock(5,19)>(b<VPBlock(3,1)>, (const-type uint)(t<VPBlock(3,0)>.Nanosecond()), std<VPBlock(2,1)>) } }
#2 bodyStmt[0/0/5]=return (const-type string)(b<VPBlock(1,4)>)*
#1 bodyStmt[0/0/3]=out<VPBlock(2,1)> += (const ("\n\n" string))*
#0 bodyStmt[0/0/2]=return out<VPBlock(1,1)>*
Blocks:
@(1) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00ba02d20,Source:if (const-type bool)(l<VPBlock(3...,Parent:0xc00ba02b40)
(s vals) @(1) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009748d20,Source:if (const-type bool)(l<VPBlock(3...,Parent:0xc0097498e0)
(s typs) @(1) []
@(2) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00ba02b40,Source:if (const-type bool)(l<VPBlock(2...,Parent:0xc00bc4b2c0)
(s vals) @(2) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009749620,Source:if (const-type bool)(l<VPBlock(2...,Parent:0xc009742c20)
(s typs) @(2) []
@(3) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00bc4b2c0,Source:func (t Time<VPBlock(2,1)>) loca...,Parent:0xc00bc4a780)
t: (struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time)
name: ( string)
offset: (0 int)
abs: (0 uint64)
l: (&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)
sec: (1704099600 int64)
(s vals) @(3) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009742c20,Source:func (t Time<VPBlock(2,1)>) loca...,Parent:0xc0097d1520)
t: (nil time.Time)
name: ( string)
offset: (0 int)
abs: (0 uint64)
l: (nil *time.Location)
sec: (0 int64)
(s typs) @(3) [time.Time string int uint64 *time.Location int64]
@(4) Block(ID:336074805fc853987abe6f7fe3ad97a6a6f3077a:4,Addr:0xc00bc4a780,Source:ref(time/time.gno:79),Parent:0xc00bc4a3c0)
(RefNode names not shown)
(s vals) @(4) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc0097d1520,Source:file{ package time; import error...,Parent:0xc009937520)
errors: (package(errors errors) package{})
(s typs) @(4) [package{}]
@(5) Block(ID:336074805fc853987abe6f7fe3ad97a6a6f3077a:2,Addr:0xc00bc4a3c0,Source:ref(time/:0),Parent:%!!(MISSING)!(MISSING)p(<nil>))
(RefNode names not shown)
(s vals) @(5) Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009937520,Source:package(time),Parent:%!!(MISSING)!(MISSING)p(<nil>))
ParseError: (typeval{time.ParseError (0xc009942840)} type{})
Time: (typeval{time.Time (0xc009942ae0)} type{})
Location: (typeval{time.Location (0xc009942b40)} type{})
zone: (typeval{time.zone (0xc009942ba0)} type{})
zoneTrans: (typeval{time.zoneTrans (0xc009942d80)} type{})
Month: (typeval{time.Month (0xc0099432c0)} type{})
Weekday: (typeval{time.Weekday (0xc0099433e0)} type{})
Duration: (typeval{time.Duration (0xc009943500)} type{})
ruleKind: (typeval{time.ruleKind (0xc009943620)} type{})
rule: (typeval{time.rule (0xc009943740)} type{})
startsWithLowerCase: (startsWithLowerCase func(str string)( bool))
nextStdChunk: (nextStdChunk func(layout string)(prefix string,std int,suffix string))
match: (match func(s1 string,s2 string)( bool))
lookup: (lookup func(tab []string,val string)( int, string, .uverse.error))
appendInt: (appendInt func(b []uint8,x int,width int)( []uint8))
atoi: (atoi func(s string)(x int,err .uverse.error))
stdFracSecond: (stdFracSecond func(code int,n int,c int)( int))
digitsLen: (digitsLen func(std int)( int))
separator: (separator func(std int)( uint8))
formatNano: (formatNano func(b []uint8,nanosec uint,std int)( []uint8))
quote: (quote func(s string)( string))
isDigit: (isDigit func(s string,i int)( bool))
getnum: (getnum func(s string,fixed bool)( int, string, .uverse.error))
getnum3: (getnum3 func(s string,fixed bool)( int, string, .uverse.error))
cutspace: (cutspace func(s string)( string))
skip: (skip func(value string,prefix string)( string, .uverse.error))
Parse: (Parse func(layout string,value string)( time.Time, .uverse.error))
ParseInLocation: (ParseInLocation func(layout string,value string,loc *time.Location)( time.Time, .uverse.error))
parse: (parse func(layout string,value string,defaultLocation *time.Location,local *time.Location)( time.Time, .uverse.error))
parseTimeZone: (parseTimeZone func(value string)(length int,ok bool))
parseGMT: (parseGMT func(value string)( int))
parseSignedOffset: (parseSignedOffset func(value string)( int))
commaOrPeriod: (commaOrPeriod func(b uint8)( bool))
parseNanoseconds: (parseNanoseconds func(value string,nbytes int)(ns int,rangeErrString string,err .uverse.error))
leadingInt: (leadingInt func(s string)(x uint64,rem string,err .uverse.error))
leadingFraction: (leadingFraction func(s string)(x uint64,scale float64,rem string))
ParseDuration: (ParseDuration func(s string)( time.Duration, .uverse.error))
absWeekday: (absWeekday func(abs uint64)( time.Weekday))
absClock: (absClock func(abs uint64)(hour int,min int,sec int))
fmtFrac: (fmtFrac func(buf []uint8,v uint64,prec int)(nw int,nv uint64))
fmtInt: (fmtInt func(buf []uint8,v uint64)( int))
lessThanHalf: (lessThanHalf func(x time.Duration,y time.Duration)( bool))
Since: (Since func(t time.Time)( time.Duration))
Until: (Until func(t time.Time)( time.Duration))
absDate: (absDate func(abs uint64,full bool)(year int,month time.Month,day int,yday int))
daysIn: (daysIn func(m time.Month,year int)( int))
daysSinceEpoch: (daysSinceEpoch func(year int)( uint64))
now: (now func()(sec int64,nsec int32,mono int64))
runtimeNano: (runtimeNano func()( int64))
Now: (Now func()( time.Time))
unixTime: (unixTime func(sec int64,nsec int32)( time.Time))
Unix: (Unix func(sec int64,nsec int64)( time.Time))
UnixMilli: (UnixMilli func(msec int64)( time.Time))
UnixMicro: (UnixMicro func(usec int64)( time.Time))
isLeap: (isLeap func(year int)( bool))
norm: (norm func(hi int,lo int,base int)(nhi int,nlo int))
Date: (Date func(year int,month time.Month,day int,hour int,min int,sec int,nsec int,loc *time.Location)( time.Time))
div: (div func(t time.Time,d time.Duration)(qmod2 int,r time.Duration))
FixedZone: (FixedZone func(name string,offset int)( *time.Location))
tzset: (tzset func(s string,initEnd int64,sec int64)(name string,offset int,start int64,end int64,isDST bool,ok bool))
tzsetName: (tzsetName func(s string)( string, string, bool))
tzsetOffset: (tzsetOffset func(s string)(offset int,rest string,ok bool))
tzsetRule: (tzsetRule func(s string)( time.rule, string, bool))
tzsetNum: (tzsetNum func(s string,min int,max int)(num int,rest string,ok bool))
tzruleTime: (tzruleTime func(year int,r time.rule,off int)( int))
LoadLocation: (LoadLocation func(name string)( *time.Location, .uverse.error))
containsDotDot: (containsDotDot func(s string)( bool))
Layout: ("01/02 03:04:05PM '06 -0700" <untyped> string)
ANSIC: ("Mon Jan _2 15:04:05 2006" <untyped> string)
UnixDate: ("Mon Jan _2 15:04:05 MST 2006" <untyped> string)
RubyDate: ("Mon Jan 02 15:04:05 -0700 2006" <untyped> string)
RFC822: ("02 Jan 06 15:04 MST" <untyped> string)
RFC822Z: ("02 Jan 06 15:04 -0700" <untyped> string)
RFC850: ("Monday, 02-Jan-06 15:04:05 MST" <untyped> string)
RFC1123: ("Mon, 02 Jan 2006 15:04:05 MST" <untyped> string)
RFC1123Z: ("Mon, 02 Jan 2006 15:04:05 -0700" <untyped> string)
RFC3339: ("2006-01-02T15:04:05Z07:00" <untyped> string)
RFC3339Nano: ("2006-01-02T15:04:05.999999999Z07:00" <untyped> string)
Kitchen: ("3:04PM" <untyped> string)
Stamp: ("Jan _2 15:04:05" <untyped> string)
StampMilli: ("Jan _2 15:04:05.000" <untyped> string)
StampMicro: ("Jan _2 15:04:05.000000" <untyped> string)
StampNano: ("Jan _2 15:04:05.000000000" <untyped> string)
stdNeedDate: (256 <untyped> bigint)
stdLongMonth: (257 <untyped> bigint)
stdMonth: (258 <untyped> bigint)
stdNumMonth: (259 <untyped> bigint)
stdZeroMonth: (260 <untyped> bigint)
stdLongWeekDay: (261 <untyped> bigint)
stdWeekDay: (262 <untyped> bigint)
stdDay: (263 <untyped> bigint)
stdUnderDay: (264 <untyped> bigint)
stdZeroDay: (265 <untyped> bigint)
stdUnderYearDay: (266 <untyped> bigint)
stdZeroYearDay: (267 <untyped> bigint)
stdNeedClock: (512 <untyped> bigint)
stdHour: (524 <untyped> bigint)
stdHour12: (525 <untyped> bigint)
stdZeroHour12: (526 <untyped> bigint)
stdMinute: (527 <untyped> bigint)
stdZeroMinute: (528 <untyped> bigint)
stdSecond: (529 <untyped> bigint)
stdZeroSecond: (530 <untyped> bigint)
stdLongYear: (275 <untyped> bigint)
stdYear: (276 <untyped> bigint)
stdPM: (533 <untyped> bigint)
stdpm: (534 <untyped> bigint)
stdTZ: (23 <untyped> bigint)
stdISO8601TZ: (24 <untyped> bigint)
stdISO8601SecondsTZ: (25 <untyped> bigint)
stdISO8601ShortTZ: (26 <untyped> bigint)
stdISO8601ColonTZ: (27 <untyped> bigint)
stdISO8601ColonSecondsTZ: (28 <untyped> bigint)
stdNumTZ: (29 <untyped> bigint)
stdNumSecondsTz: (30 <untyped> bigint)
stdNumShortTZ: (31 <untyped> bigint)
stdNumColonTZ: (32 <untyped> bigint)
stdNumColonSecondsTZ: (33 <untyped> bigint)
stdFracSecond0: (34 <untyped> bigint)
stdFracSecond9: (35 <untyped> bigint)
stdArgShift: (16 <untyped> bigint)
stdSeparatorShift: (28 <untyped> bigint)
stdMask: (65535 <untyped> bigint)
std0x: (nil [6]int)
longDayNames: (nil []string)
shortDayNames: (nil []string)
shortMonthNames: (nil []string)
longMonthNames: (nil []string)
atoiError: (undefined)
errBad: (undefined)
lowerhex: ("0123456789abcdef" <untyped> string)
runeSelf: (128 <untyped> bigint)
runeError: (65533 <untyped> int32)
errLeadingInt: (undefined)
Nanosecond: (1 time.Duration)
Microsecond: (1000 time.Duration)
Millisecond: (1000000 time.Duration)
Second: (1000000000 time.Duration)
Minute: (60000000000 time.Duration)
Hour: (3600000000000 time.Duration)
unitMap: (nil map[string]uint64)
hasMonotonic: (9223372036854775808 <untyped> bigint)
secondsPerMinute: (60 <untyped> bigint)
secondsPerHour: (3600 <untyped> bigint)
secondsPerDay: (86400 <untyped> bigint)
wallToInternal: (59453308800 int64)
maxWall: (68043243391 int64)
minWall: (59453308800 int64)
nsecMask: (1073741823 <untyped> bigint)
nsecShift: (30 <untyped> bigint)
January: (1 time.Month)
February: (2 time.Month)
March: (3 time.Month)
April: (4 time.Month)
May: (5 time.Month)
June: (6 time.Month)
July: (7 time.Month)
August: (8 time.Month)
September: (9 time.Month)
October: (10 time.Month)
November: (11 time.Month)
December: (12 time.Month)
Sunday: (0 time.Weekday)
Monday: (1 time.Weekday)
Tuesday: (2 time.Weekday)
Wednesday: (3 time.Weekday)
Thursday: (4 time.Weekday)
Friday: (5 time.Weekday)
Saturday: (6 time.Weekday)
absoluteZeroYear: (-292277022399 <untyped> bigint)
internalYear: (1 <untyped> bigint)
absoluteToInternal: (-9223371966579724800 int64)
internalToAbsolute: (9223371966579724800 int64)
unixToInternal: (62135596800 int64)
internalToUnix: (-62135596800 int64)
minDuration: (-9223372036854775808 time.Duration)
maxDuration: (9223372036854775807 time.Duration)
secondsPerWeek: (604800 <untyped> bigint)
daysPer400Years: (146097 <untyped> bigint)
daysPer100Years: (36524 <untyped> bigint)
daysPer4Years: (1461 <untyped> bigint)
daysBefore: (nil [13]int32)
startNano: (0 int64)
timeBinaryVersionV1: (1 uint8)
timeBinaryVersionV2: (2 uint8)
alpha: (-9223372036854775808 <untyped> bigint)
omega: (9223372036854775807 <untyped> bigint)
utcLoc: (nil time.Location)
UTC: (nil *time.Location)
localLoc: (undefined)
Local: (nil *time.Location)
ruleJulian: (0 time.ruleKind)
ruleDOY: (1 time.ruleKind)
ruleMonthWeekDay: (2 time.ruleKind)
errLocation: (undefined)
zoneinfo: (undefined)
(s typs) @(5) [type{} type{} type{} type{} type{} type{} type{} type{} type{} type{} func(str string)( bool) func(layout string)(prefix string,std int,suffix string) func(s1 string,s2 string)( bool) func(tab []string,val string)( int, string, .uverse.error) func(b []uint8,x int,width int)( []uint8) func(s string)(x int,err .uverse.error) func(code int,n int,c int)( int) func(std int)( int) func(std int)( uint8) func(b []uint8,nanosec uint,std int)( []uint8) func(s string)( string) func(s string,i int)( bool) func(s string,fixed bool)( int, string, .uverse.error) func(s string,fixed bool)( int, string, .uverse.error) func(s string)( string) func(value string,prefix string)( string, .uverse.error) func(layout string,value string)( time.Time, .uverse.error) func(layout string,value string,loc *time.Location)( time.Time, .uverse.error) func(layout string,value string,defaultLocation *time.Location,local *time.Location)( time.Time, .uverse.error) func(value string)(length int,ok bool) func(value string)( int) func(value string)( int) func(b uint8)( bool) func(value string,nbytes int)(ns int,rangeErrString string,err .uverse.error) func(s string)(x uint64,rem string,err .uverse.error) func(s string)(x uint64,scale float64,rem string) func(s string)( time.Duration, .uverse.error) func(abs uint64)( time.Weekday) func(abs uint64)(hour int,min int,sec int) func(buf []uint8,v uint64,prec int)(nw int,nv uint64) func(buf []uint8,v uint64)( int) func(x time.Duration,y time.Duration)( bool) func(t time.Time)( time.Duration) func(t time.Time)( time.Duration) func(abs uint64,full bool)(year int,month time.Month,day int,yday int) func(m time.Month,year int)( int) func(year int)( uint64) func()(sec int64,nsec int32,mono int64) func()( int64) func()( time.Time) func(sec int64,nsec int32)( time.Time) func(sec int64,nsec int64)( time.Time) func(msec int64)( time.Time) func(usec int64)( time.Time) func(year int)( bool) func(hi int,lo int,base int)(nhi int,nlo int) func(year int,month time.Month,day int,hour int,min int,sec int,nsec int,loc *time.Location)( time.Time) func(t time.Time,d time.Duration)(qmod2 int,r time.Duration) func(name string,offset int)( *time.Location) func(s string,initEnd int64,sec int64)(name string,offset int,start int64,end int64,isDST bool,ok bool) func(s string)( string, string, bool) func(s string)(offset int,rest string,ok bool) func(s string)( time.rule, string, bool) func(s string,min int,max int)(num int,rest string,ok bool) func(year int,r time.rule,off int)( int) func(name string)( *time.Location, .uverse.error) func(s string)( bool) <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> string <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint [6]int []string []string []string []string .uverse.error .uverse.error <untyped> string <untyped> bigint <untyped> int32 .uverse.error time.Duration time.Duration time.Duration time.Duration time.Duration time.Duration map[string]uint64 <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint int64 int64 int64 <untyped> bigint <untyped> bigint time.Month time.Month time.Month time.Month time.Month time.Month time.Month time.Month time.Month time.Month time.Month time.Month time.Weekday time.Weekday time.Weekday time.Weekday time.Weekday time.Weekday time.Weekday <untyped> bigint <untyped> bigint int64 int64 int64 int64 time.Duration time.Duration <untyped> bigint <untyped> bigint <untyped> bigint <untyped> bigint [13]int32 int64 uint8 uint8 <untyped> bigint <untyped> bigint time.Location *time.Location time.Location *time.Location time.ruleKind time.ruleKind time.ruleKind .uverse.error *string]
Blocks (other):
#6 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00ba02b40,Source:if (const-type bool)(l<VPBlock(2...,Parent:0xc00bc4b2c0)
(static) #6 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009749620,Source:if (const-type bool)(l<VPBlock(2...,Parent:0xc009742c20)
#5 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00bc4b2c0,Source:func (t Time<VPBlock(2,1)>) loca...,Parent:0xc00bc4a780)
t: (struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time)
name: ( string)
offset: (0 int)
abs: (0 uint64)
l: (&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)
sec: (1704099600 int64)
(static) #5 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009742c20,Source:func (t Time<VPBlock(2,1)>) loca...,Parent:0xc0097d1520)
t: (nil time.Time)
name: ( string)
offset: (0 int)
abs: (0 uint64)
l: (nil *time.Location)
sec: (0 int64)
#4 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00bc4b0e0,Source:func (t Time<VPBlock(2,1)>) Appe...,Parent:0xc00bc4a5a0)
t: (struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time)
b: (slice[0x] []uint8)
layout: ("2006-01-02T15:04:05Z07:00" string)
.res_0: (nil []uint8)
name: (undefined)
offset: (undefined)
abs: (undefined)
year: (undefined)
month: (undefined)
day: (undefined)
yday: (undefined)
hour: (undefined)
min: (undefined)
sec: (undefined)
(static) #4 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009465020,Source:func (t Time<VPBlock(2,1)>) Appe...,Parent:0xc00969a620)
t: (nil time.Time)
b: (nil []uint8)
layout: ( string)
.res_0: (nil []uint8)
name: ( string)
offset: (0 int)
abs: (0 uint64)
year: (0 int)
month: (undefined)
day: (undefined)
yday: (undefined)
hour: (0 int)
min: (undefined)
sec: (undefined)
#3 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00bc4ab40,Source:func (t Time<VPBlock(2,1)>) Form...,Parent:0xc00bc4a5a0)
t: (struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time)
layout: ("2006-01-02T15:04:05Z07:00" string)
.res_0: ( string)
bufSize: (64 <untyped> bigint)
b: (slice[0x] []uint8)
max: (35 int)
(static) #3 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc009464c20,Source:func (t Time<VPBlock(2,1)>) Form...,Parent:0xc00969a620)
t: (nil time.Time)
layout: ( string)
.res_0: ( string)
bufSize: (64 <untyped> bigint)
b: (undefined)
max: (0 int)
#2 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc0097094a0,Source:for i<VPBlock(1,0)> := (const (0...,Parent:0xc0097092c0)
i: (0 int)
rawPost: (&(struct{(struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time)} gno.land/r/demo/xx.Post) *gno.land/r/demo/xx.Post)
post: (&(struct{(struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time)} gno.land/r/demo/xx.Post) *gno.land/r/demo/xx.Post)
(static) #2 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc00bc3c320,Source:for i<VPBlock(1,0)> := (const (0...,Parent:0xc005e71c20)
i: (0 int)
rawPost: (undefined)
post: (nil *gno.land/r/demo/xx.Post)
#1 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc0097092c0,Source:func Read() (const-type string)...,Parent:0xc0097085a0)
.res_0: ( string)
out: ("" string)
(static) #1 Block(ID:0000000000000000000000000000000000000000:0,Addr:0xc005e71c20,Source:func Read() (const-type string)...,Parent:0xc00bc3d520)
.res_0: ( string)
out: ( string)
Frames:
#4 [FRAME FUNC:locabs RECV:(struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time) (0 args) 15/3/0/12/5 LASTPKG:time LASTRLM:Realm{Path:"gno.land/r/demo/xx",Time:12}#A0251C714DCD7B19C41DB3E1F57C91E5416FEE33]
#3 [FRAME FUNC:AppendFormat RECV:(struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time) (2 args) 6/2/0/3/4 LASTPKG:time LASTRLM:Realm{Path:"gno.land/r/demo/xx",Time:12}#A0251C714DCD7B19C41DB3E1F57C91E5416FEE33]
#2 [FRAME FUNC:Format RECV:(struct{(0 uint64),(63839696400 int64),(&(struct{( string),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:9)] []time.zone),(slice[ref(a0251c714dcd7b19c41db3e1f57c91e5416fee33:11)] []time.zoneTrans),( string),(-9223372036854775808 int64),(9223372036854775807 int64),(&<nil> *time.zone)} time.Location) *time.Location)} time.Time) (1 args) 4/1/0/2/3 LASTPKG:gno.land/r/demo/xx LASTRLM:Realm{Path:"gno.land/r/demo/xx",Time:12}#A0251C714DCD7B19C41DB3E1F57C91E5416FEE33]
#1 [FRAME LABEL: 2/1/0/1/2]
#0 [FRAME FUNC:Read RECV:(undefined) (0 args) 1/0/0/0/1 LASTPKG:main LASTRLM:Realm(nil)]
Realm:
gno.land/r/demo/xx
Exceptions:
[]
Stack Trace:
0 /home/howl/oc/gno/tm2/pkg/errors/errors.go:20
1 /home/howl/oc/gno/gno.land/pkg/sdk/vm/keeper.go:279
2 /usr/lib/go/src/runtime/panic.go:914
3 /usr/lib/go/src/runtime/iface.go:263
4 /usr/lib/go/src/runtime/iface.go:273
5 /home/howl/oc/gno/gnovm/pkg/gnolang/values.go:2536
6 /home/howl/oc/gno/gnovm/pkg/gnolang/values.go:463
7 /home/howl/oc/gno/gnovm/pkg/gnolang/values.go:459
8 /home/howl/oc/gno/gnovm/pkg/gnolang/values.go:1715
9 /home/howl/oc/gno/gnovm/pkg/gnolang/op_expressions.go:81
10 /home/howl/oc/gno/gnovm/pkg/gnolang/machine.go:1260
11 /home/howl/oc/gno/gnovm/pkg/gnolang/machine.go:711
12 /home/howl/oc/gno/gno.land/pkg/sdk/vm/keeper.go:285
13 /home/howl/oc/gno/gno.land/pkg/sdk/vm/handler.go:66
14 /home/howl/oc/gno/gno.land/pkg/sdk/vm/handler.go:29
15 /home/howl/oc/gno/tm2/pkg/sdk/baseapp.go:650
16 /home/howl/oc/gno/tm2/pkg/sdk/baseapp.go:829
17 /home/howl/oc/gno/tm2/pkg/sdk/baseapp.go:586
18 /home/howl/oc/gno/tm2/pkg/bft/abci/client/local_client.go:82
19 /home/howl/oc/gno/tm2/pkg/bft/proxy/app_conn.go:73
20 /home/howl/oc/gno/tm2/pkg/bft/state/execution.go:254
21 /home/howl/oc/gno/tm2/pkg/bft/state/execution.go:103
22 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:1348
23 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:1276
24 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:1222
25 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:1253
26 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:1638
27 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:1484
28 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:692
29 /home/howl/oc/gno/tm2/pkg/bft/consensus/state.go:651
30 /usr/lib/go/src/runtime/asm_amd64.s:1650
--= /Error =--
,events:[]
--= /Error =--
FAIL: testdata/issue-1588.txtar:12: unexpected "gnokey" command failure: interface conversion: gnolang.Type is *gnolang.PointerType, not *gnolang.ArrayType
--- FAIL: TestTestdata (4.18s)
--- FAIL: TestTestdata/issue-1588 (4.18s)
FAIL
FAIL github.com/gnolang/gno/gno.land/cmd/gnoland 4.249s
FAIL
# 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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment