From 291a9474c846ceb0d9d8ea4b3078b4a91b50e153 Mon Sep 17 00:00:00 2001 From: Guillaume Ballet <3272758+gballet@users.noreply.github.com> Date: Wed, 9 Feb 2022 18:57:28 +0100 Subject: [PATCH] force the 32-byte alignment of nonce and balance (#71) * force the 32-byte alignment of nonce and balance * review feedback: fix endianness in output --- trie/verkle.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/trie/verkle.go b/trie/verkle.go index 2c257668d7a2..afa8e16aad59 100644 --- a/trie/verkle.go +++ b/trie/verkle.go @@ -68,11 +68,15 @@ func (t *VerkleTrie) TryUpdateAccount(key []byte, acc *types.StateAccount) error return fmt.Errorf("updateStateObject (%x) error: %v", key, err) } var nonce [32]byte - binary.BigEndian.PutUint64(nonce[:], acc.Nonce) + binary.LittleEndian.PutUint64(nonce[24:], acc.Nonce) if err = t.TryUpdate(utils.GetTreeKeyNonce(key), nonce[:]); err != nil { return fmt.Errorf("updateStateObject (%x) error: %v", key, err) } - if err = t.TryUpdate(utils.GetTreeKeyBalance(key), acc.Balance.Bytes()); err != nil { + var balance [32]byte + for i, b := range acc.Balance.Bytes() { + balance[31-i] = b + } + if err = t.TryUpdate(utils.GetTreeKeyBalance(key), balance[:]); err != nil { return fmt.Errorf("updateStateObject (%x) error: %v", key, err) } if err = t.TryUpdate(utils.GetTreeKeyCodeKeccak(key), acc.CodeHash); err != nil {