forked from TrueCloudLab/neoneo-go
3070c2e7fc
Use read only context where appropriate, shorten notifications, fix comment.
33 lines
1,000 B
Go
33 lines
1,000 B
Go
package iteratorcontract
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neo-go/pkg/interop/iterator"
|
|
"github.com/nspcc-dev/neo-go/pkg/interop/runtime"
|
|
"github.com/nspcc-dev/neo-go/pkg/interop/storage"
|
|
)
|
|
|
|
// _deploy primes contract's storage with some data to be used later.
|
|
func _deploy(_ interface{}, _ bool) {
|
|
ctx := storage.GetContext() // RW context.
|
|
storage.Put(ctx, "foo1", "1")
|
|
storage.Put(ctx, "foo2", "2")
|
|
storage.Put(ctx, "foo3", "3")
|
|
}
|
|
|
|
// NotifyKeysAndValues sends notification with `foo` storage keys and values.
|
|
func NotifyKeysAndValues() bool {
|
|
iter := storage.Find(storage.GetReadOnlyContext(), []byte("foo"), storage.None)
|
|
for iterator.Next(iter) {
|
|
runtime.Notify("Key-Value", iterator.Value(iter))
|
|
}
|
|
return true
|
|
}
|
|
|
|
// NotifyValues sends notification with `foo` storage values.
|
|
func NotifyValues() bool {
|
|
iter := storage.Find(storage.GetReadOnlyContext(), []byte("foo"), storage.ValuesOnly)
|
|
for iterator.Next(iter) {
|
|
runtime.Notify("Value", iterator.Value(iter))
|
|
}
|
|
return true
|
|
}
|