neo-go/pkg/core/transaction/conflicts.go
Ekaterina Pavlova 956fd08adb *: add Copy() to transaction.Transaction and payload.P2PNotaryRequest
Add a method that makes a deep copy of all fields and resets size/hash
caches.

Close #3288

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-04-28 00:59:15 +05:30

32 lines
708 B
Go

package transaction
import (
"github.com/nspcc-dev/neo-go/pkg/io"
"github.com/nspcc-dev/neo-go/pkg/util"
)
// Conflicts represents attribute for conflicting transactions.
type Conflicts struct {
Hash util.Uint256 `json:"hash"`
}
// DecodeBinary implements the io.Serializable interface.
func (c *Conflicts) DecodeBinary(br *io.BinReader) {
c.Hash.DecodeBinary(br)
}
// EncodeBinary implements the io.Serializable interface.
func (c *Conflicts) EncodeBinary(w *io.BinWriter) {
c.Hash.EncodeBinary(w)
}
func (c *Conflicts) toJSONMap(m map[string]any) {
m["hash"] = c.Hash
}
// Copy implements the AttrValue interface.
func (c *Conflicts) Copy() AttrValue {
return &Conflicts{
Hash: c.Hash,
}
}