mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-03-10 23:18:40 +00:00
add dao which takes care about all CRUD operations on storage remove blockchain state since everything is stored on change remove storage operations from structs(entities) move structs to entities package
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package entities
|
|
|
|
import (
|
|
"github.com/CityOfZion/neo-go/pkg/io"
|
|
"github.com/CityOfZion/neo-go/pkg/util"
|
|
"github.com/CityOfZion/neo-go/pkg/vm"
|
|
)
|
|
|
|
// NotificationEvent is a tuple of scripthash that emitted the StackItem as a
|
|
// notification and that item itself.
|
|
type NotificationEvent struct {
|
|
ScriptHash util.Uint160
|
|
Item vm.StackItem
|
|
}
|
|
|
|
// AppExecResult represent the result of the script execution, gathering together
|
|
// all resulting notifications, state, stack and other metadata.
|
|
type AppExecResult struct {
|
|
TxHash util.Uint256
|
|
Trigger byte
|
|
VMState string
|
|
GasConsumed util.Fixed8
|
|
Stack string // JSON
|
|
Events []NotificationEvent
|
|
}
|
|
|
|
// EncodeBinary implements the Serializable interface.
|
|
func (ne *NotificationEvent) EncodeBinary(w *io.BinWriter) {
|
|
w.WriteBytes(ne.ScriptHash[:])
|
|
vm.EncodeBinaryStackItem(ne.Item, w)
|
|
}
|
|
|
|
// DecodeBinary implements the Serializable interface.
|
|
func (ne *NotificationEvent) DecodeBinary(r *io.BinReader) {
|
|
r.ReadBytes(ne.ScriptHash[:])
|
|
ne.Item = vm.DecodeBinaryStackItem(r)
|
|
}
|
|
|
|
// EncodeBinary implements the Serializable interface.
|
|
func (aer *AppExecResult) EncodeBinary(w *io.BinWriter) {
|
|
w.WriteBytes(aer.TxHash[:])
|
|
w.WriteArray(aer.Events)
|
|
}
|
|
|
|
// DecodeBinary implements the Serializable interface.
|
|
func (aer *AppExecResult) DecodeBinary(r *io.BinReader) {
|
|
r.ReadBytes(aer.TxHash[:])
|
|
r.ReadArray(&aer.Events)
|
|
}
|