I4S4U3bugcompilerhelp wanted
仓库指标
- 星标
- (132 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
Tried to cast item from contract's storage and use it.
Current Behavior
newNodes := storage.Find(ctx, newNodesPrefix, storage.None)
for iterator.Next(newNodes) {
newNode := iterator.Value(newNodes).(struct {
key []byte
val []byte
})
newNode.key[0] = 1
}
leads to SETITEM: invalid item type ByteString
newNode.key[:][0] = 1 solves the issue... why?
Expected Behavior
I said (asserted/converted) that it is a []byte, i want to use it as []byte.
Possible Solution
Ensure, cast or throw an exception at .() operator, not when it is tried to be used later.
Steps to Reproduce
Code from Current Behavior.
Context
https://github.com/nspcc-dev/neofs-contract/pull/438#discussion_r1786975526
Regression
Not sure.
Your Environment
github.com/nspcc-dev/neo-go v0.106.3