func (ac *Account) Serialize() []byte {
	var res [160]byte
	binary.BigEndian.PutUint64(res[24:], ac.index)  
	binary.BigEndian.PutUint64(res[56:], ac.nonce)  
	buf := ac.balance.Bytes()
	copy(res[64:], buf[:])
	buf = ac.pubKey.A.X.Bytes()
	copy(res[96:], buf[:])
	buf = ac.pubKey.A.Y.Bytes()
	copy(res[128:], buf[:])
	return res[:]
}
Serialize serializes the account as a concatenation of 5 chunks of 256 bits
one chunk per field (pubKey has 2 chunks), except index and nonce that are concatenated in a single 256 bits chunk
index || nonce || balance || pubkeyX || pubkeyY, each chunk is 256 bits
package rollup
import (
	"encoding/binary"
	"github.com/consensys/gnark-crypto/ecc/bn254/fr"
	"github.com/consensys/gnark-crypto/ecc/bn254/twistededwards/eddsa"
)
var (
	SizeAccount = 160
)
type Account struct {
	index   uint64  
	nonce   uint64  
	balance fr.Element
	pubKey  eddsa.PublicKey
}
func (ac *Account) Reset() {
	ac.index = 0
	ac.nonce = 0
	ac.balance.SetZero()
	ac.pubKey.A.X.SetZero()
	ac.pubKey.A.Y.SetOne()
}