core: clone MPT node while restoring it multiple times
We need this to avoid collapse collisions. Example of such collapse described in https://github.com/nspcc-dev/neo-go/pull/2019#discussion_r689629704.
This commit is contained in:
parent
5cd78c31af
commit
36808b8904
8 changed files with 138 additions and 1 deletions
|
@ -77,3 +77,10 @@ func (h *HashNode) UnmarshalJSON(data []byte) error {
|
|||
}
|
||||
return errors.New("expected hash node")
|
||||
}
|
||||
|
||||
// Clone implements Node interface.
|
||||
func (h *HashNode) Clone() Node {
|
||||
res := *h
|
||||
res.Collapsed = false
|
||||
return &res
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue